CodeVetter · Repo Unpack · Extension points
solidjs/solid
Extension primarily happens through factory callbacks, renderer host operations, scoped providers, and compiler options. Development hooks expose graph and store updates, while external-source factories connect other reactive systems. Packaging and examples also contain explicit lists that must be extended when adding a new public entrypoint or sample route.
- createRenderer accepts RendererOptions<NodeType>, delegates to the expression renderer, and replaces its mergeProps with Solid's implementation; documented host operations include node creation, insertion, removal, traversal, and property assignment.
- The Babel preset merges caller options over default moduleName, builtIns, contextToCustomElements, wrapConditionals, and generate; custom-renderer documentation sets generate:universal and a host moduleName.
- enableExternalSource accepts a tracking/disposal factory and optional untrack function; repeated registrations compose factories and dispose both layers.
- enableScheduling accepts a custom scheduler, with requestCallback as the default; createDeferred routes delayed propagation through requestCallback.
- createResource accepts consumer fetchers and custom accessor/setter storage, plus SSR-load and onHydrated options, enabling data-source and state-storage adaptation without changing the resource runtime.
- createContext creates a unique provider key; useContext reads it from Owner.context with a default fallback, giving libraries a scoped service/state injection mechanism.
- DEV exposes reactive graph hooks and writeSignal/registerGraph; the store DEV export exposes onStoreNodeUpdate hooks and node inspection helpers.
- SolidStore.Unwrappable is an open interface whose property values become part of NotWrappable, allowing TypeScript declaration augmentation for excluded store value types.
- withSolid adapts component-register component types, and customElement supports either a component alone or a props-definition/component pair for new custom-element registrations.
- New published subpaths require coordinated package exports/files entries and Rollup build targets; declaration scripts also explicitly enumerate generated subpackages.
- The SSR example's route extension points are App's Link/Match entries and the SSG PAGES list; routing itself exposes RouteHOC, RouterContext, and Link.
- renderStatic accepts one configuration or an array, and each entry module supplies an async default function returning HTML; this makes the runner reusable with different rendering entrypoints.