Copies non-react specific statics from a child component to a parent component
95
{
"context": "Criteria evaluate whether the solution wraps components while relying on hoist-non-react-statics to preserve symbol-keyed metadata as described in the spec. Scoring focuses purely on deliberate use of hoist-non-react-statics to copy symbol statics, honor exclusions, and leverage its handling of inherited properties and descriptors.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Uses hoist helper",
"description": "Implementation calls hoistNonReactStatics (the default export from hoist-non-react-statics) to transfer statics from the base component to the wrapper instead of reimplementing manual copying.",
"max_score": 30
},
{
"name": "Symbol statics kept",
"description": "hoistNonReactStatics is applied so symbol-keyed statics on the base component are present on the wrapper with identical references/values, demonstrating the library's symbol support.",
"max_score": 25
},
{
"name": "Exclusions handled",
"description": "Options.excludeSymbols are converted into the exclusion map passed to hoistNonReactStatics, ensuring specified symbol keys are omitted during hoisting while other statics remain.",
"max_score": 20
},
{
"name": "Prototype symbols",
"description": "hoistNonReactStatics is invoked on the base component (not just its own properties) so inherited symbol statics from the prototype chain are hoisted as the library provides.",
"max_score": 15
},
{
"name": "Hoist placement",
"description": "hoistNonReactStatics is called after the wrapper component is defined and before it is returned/exported, ensuring symbol statics are attached to the returned wrapper rather than left on the base component only.",
"max_score": 10
}
]
}Install with Tessl CLI
npx tessl i tessl/npm-hoist-non-react-staticsdocs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10