@reckona/mreact-compat 0.0.87 → 0.0.89
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/class-component.d.ts +2 -0
- package/dist/class-component.d.ts.map +1 -1
- package/dist/class-component.js +12 -1
- package/dist/class-component.js.map +1 -1
- package/dist/element.d.ts +1 -0
- package/dist/element.d.ts.map +1 -1
- package/dist/element.js +5 -0
- package/dist/element.js.map +1 -1
- package/dist/fiber-reconciler.d.ts.map +1 -1
- package/dist/fiber-reconciler.js +3 -1
- package/dist/fiber-reconciler.js.map +1 -1
- package/dist/hooks.d.ts +3 -1
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +9 -3
- package/dist/hooks.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/react-default.d.ts +74 -0
- package/dist/react-default.d.ts.map +1 -0
- package/dist/react-default.js +68 -0
- package/dist/react-default.js.map +1 -0
- package/package.json +2 -2
- package/src/class-component.ts +24 -1
- package/src/element.ts +8 -0
- package/src/fiber-reconciler.ts +3 -0
- package/src/hooks.ts +13 -5
- package/src/index.ts +1 -0
- package/src/react-default.ts +133 -0
package/README.md
CHANGED
|
@@ -19,6 +19,7 @@ compatibility runtime.
|
|
|
19
19
|
## Exports
|
|
20
20
|
|
|
21
21
|
- `@reckona/mreact-compat` exposes the core compatibility APIs.
|
|
22
|
+
- The main entrypoint includes a React-style default namespace export for dependencies that import React as an object.
|
|
22
23
|
- `@reckona/mreact-compat/jsx-runtime` and `./jsx-dev-runtime` provide JSX
|
|
23
24
|
runtime entrypoints.
|
|
24
25
|
- `@reckona/mreact-compat/scheduler` exposes the scheduler-compatible API.
|
|
@@ -19,6 +19,7 @@ export interface ClassComponentInstance {
|
|
|
19
19
|
}
|
|
20
20
|
export interface ClassComponentType {
|
|
21
21
|
new (props: Record<string, unknown>): ClassComponentInstance;
|
|
22
|
+
getDerivedStateFromProps?: (nextProps: Record<string, unknown>, previousState: Record<string, unknown>) => Record<string, unknown> | null;
|
|
22
23
|
getDerivedStateFromError?: (error: Error) => Record<string, unknown> | null;
|
|
23
24
|
}
|
|
24
25
|
export declare class Component<P extends Record<string, unknown> = Record<string, unknown>, S extends Record<string, unknown> = Record<string, unknown>> {
|
|
@@ -42,6 +43,7 @@ export type ClassComponentRenderResult = {
|
|
|
42
43
|
};
|
|
43
44
|
export declare function reconcileClassComponent(parent: ParentNode, previousNodes: readonly Node[], type: ClassComponentType, props: Record<string, unknown>, runtime: RootRuntime, path: string, options: RenderOptions, reconcileNode: ReconcileNode, onInstance?: (instance: ClassComponentInstance) => void): ReconcileResult;
|
|
44
45
|
export declare function renderClassComponentWithRuntime(type: ClassComponentType, props: Record<string, unknown>, runtime: RootRuntime, path: string): ClassComponentRenderResult;
|
|
46
|
+
export declare function applyDerivedStateFromProps(type: ClassComponentType, instance: ClassComponentInstance, nextProps: Record<string, unknown>, previousState: Record<string, unknown>): void;
|
|
45
47
|
export declare function recoverClassComponentError(type: ClassComponentType, instance: ClassComponentInstance, error: unknown): ReactCompatNode | undefined;
|
|
46
48
|
export declare function isClassComponentType(value: unknown): value is ClassComponentType;
|
|
47
49
|
export declare function reconcileErrorBoundary(parent: ParentNode, previousNodes: readonly Node[], element: ReactCompatElement, runtime: RootRuntime, path: string, options: RenderOptions, reconcileNode: ReconcileNode): ReconcileResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-component.d.ts","sourceRoot":"","sources":["../src/class-component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkD,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9F,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAA+B,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI3E,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,CACT,OAAO,EACH,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,CAAC,CACC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,EACxC,QAAQ,CAAC,EAAE,MAAM,IAAI,KAClB,IAAI,CAAC;IACV,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAC9C,MAAM,IAAI,eAAe,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,kBAAkB,CAAC,EAAE,CACnB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,QAAQ,CAAC,EAAE,OAAO,KACf,IAAI,CAAC;IACV,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,qBAAqB,CAAC,EAAE,CACtB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC/B,OAAO,CAAC;IACb,uBAAuB,CAAC,EAAE,CACxB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KACnC,OAAO,CAAC;IACb,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAC9E;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,sBAAsB,CAAC;IAC7D,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC7E;AAED,qBAAa,SAAS,CACpB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAE3D,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,QAAQ,EAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAC9C,WAAW,EAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;gBAExC,KAAK,EAAE,CAAC;IAIpB,MAAM,IAAI,eAAe;CAG1B;AAED,qBAAa,aAAa,CACxB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAC3D,SAAQ,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IACvB,qBAAqB,CAAC,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,OAAO;CAG3D;AAaD,MAAM,MAAM,0BAA0B,GAClC;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE,sBAAsB,CAAC;IACjC,IAAI,EAAE,kBAAkB,CAAC;CAC1B,GACD;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,UAAU,EAClB,aAAa,EAAE,SAAS,IAAI,EAAE,EAC9B,IAAI,EAAE,kBAAkB,EACxB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,EACtB,aAAa,EAAE,aAAa,EAC5B,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,sBAAsB,KAAK,IAAI,GACtD,eAAe,CA0CjB;AAED,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,kBAAkB,EACxB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,GACX,0BAA0B,
|
|
1
|
+
{"version":3,"file":"class-component.d.ts","sourceRoot":"","sources":["../src/class-component.ts"],"names":[],"mappings":"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"}
|
package/dist/class-component.js
CHANGED
|
@@ -56,9 +56,10 @@ export function renderClassComponentWithRuntime(type, props, runtime, path) {
|
|
|
56
56
|
const previousProps = instance.props;
|
|
57
57
|
const snapshot = classLifecycleSnapshots.get(instance);
|
|
58
58
|
const previousState = snapshot?.previousState ?? instance.state ?? {};
|
|
59
|
-
const nextState = instance.state ?? {};
|
|
60
59
|
instanceRef.current = instance;
|
|
61
60
|
installClassUpdateMethods(instance, runtime);
|
|
61
|
+
applyDerivedStateFromProps(type, instance, props, previousState);
|
|
62
|
+
const nextState = instance.state ?? {};
|
|
62
63
|
const shouldSkipUpdate = didCommitRef.current &&
|
|
63
64
|
snapshot?.force !== true &&
|
|
64
65
|
instance.shouldComponentUpdate?.(props, nextState) === false;
|
|
@@ -86,6 +87,16 @@ export function renderClassComponentWithRuntime(type, props, runtime, path) {
|
|
|
86
87
|
}
|
|
87
88
|
});
|
|
88
89
|
}
|
|
90
|
+
export function applyDerivedStateFromProps(type, instance, nextProps, previousState) {
|
|
91
|
+
const derivedState = type.getDerivedStateFromProps?.(nextProps, previousState);
|
|
92
|
+
if (derivedState === undefined || derivedState === null) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
instance.state = {
|
|
96
|
+
...instance.state,
|
|
97
|
+
...derivedState,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
89
100
|
export function recoverClassComponentError(type, instance, error) {
|
|
90
101
|
if (isThenable(error) || !isErrorBoundaryClass(type, instance)) {
|
|
91
102
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-component.js","sourceRoot":"","sources":["../src/class-component.ts"],"names":[],"mappings":"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","sourcesContent":["import { renderWithRootRuntime, useLayoutEffect, useRef, type RootRuntime } from \"./hooks.js\";\nimport type { ReactCompatElement, ReactCompatNode } from \"./element.js\";\nimport { withHydrationComponentStack, type RenderOptions } from \"./hydration.js\";\nimport type { ReconcileNode, ReconcileResult } from \"./reconcile-types.js\";\nimport { isThenable } from \"./thenable.js\";\nimport { shallowEqual } from \"./prop-comparison.js\";\n\nexport interface ClassComponentInstance {\n props: Record<string, unknown>;\n state?: Record<string, unknown>;\n setState?: (\n partial:\n | Record<string, unknown>\n | ((\n previousState: Record<string, unknown>,\n props: Record<string, unknown>,\n ) => Record<string, unknown> | null),\n callback?: () => void,\n ) => void;\n forceUpdate?: (callback?: () => void) => void;\n render(): ReactCompatNode;\n componentDidMount?: () => void;\n componentDidUpdate?: (\n previousProps: Record<string, unknown>,\n previousState: Record<string, unknown>,\n snapshot?: unknown,\n ) => void;\n componentWillUnmount?: () => void;\n shouldComponentUpdate?: (\n nextProps: Record<string, unknown>,\n nextState: Record<string, unknown>,\n ) => boolean;\n getSnapshotBeforeUpdate?: (\n previousProps: Record<string, unknown>,\n previousState: Record<string, unknown>,\n ) => unknown;\n componentDidCatch?: (error: Error, info: { componentStack: string }) => void;\n}\n\nexport interface ClassComponentType {\n new (props: Record<string, unknown>): ClassComponentInstance;\n getDerivedStateFromError?: (error: Error) => Record<string, unknown> | null;\n}\n\nexport class Component<\n P extends Record<string, unknown> = Record<string, unknown>,\n S extends Record<string, unknown> = Record<string, unknown>,\n> {\n props: P;\n state?: S;\n setState!: ClassComponentInstance[\"setState\"];\n forceUpdate!: ClassComponentInstance[\"forceUpdate\"];\n\n constructor(props: P) {\n this.props = props;\n }\n\n render(): ReactCompatNode {\n return null;\n }\n}\n\nexport class PureComponent<\n P extends Record<string, unknown> = Record<string, unknown>,\n S extends Record<string, unknown> = Record<string, unknown>,\n> extends Component<P, S> {\n shouldComponentUpdate(nextProps: P, nextState: S): boolean {\n return !shallowEqual(this.props, nextProps) || !shallowEqual(this.state ?? {}, nextState ?? {});\n }\n}\n\ninterface ClassLifecycleSnapshot {\n previousState?: Record<string, unknown>;\n force?: boolean;\n snapshot?: unknown;\n}\n\nconst classLifecycleSnapshots = new WeakMap<\n ClassComponentInstance,\n ClassLifecycleSnapshot\n>();\n\nexport type ClassComponentRenderResult =\n | {\n kind: \"render\";\n node: ReactCompatNode;\n instance: ClassComponentInstance;\n type: ClassComponentType;\n }\n | { kind: \"skip\" };\n\nexport function reconcileClassComponent(\n parent: ParentNode,\n previousNodes: readonly Node[],\n type: ClassComponentType,\n props: Record<string, unknown>,\n runtime: RootRuntime,\n path: string,\n options: RenderOptions,\n reconcileNode: ReconcileNode,\n onInstance?: (instance: ClassComponentInstance) => void,\n): ReconcileResult {\n const rendered = renderClassComponentWithRuntime(type, props, runtime, path);\n\n if (rendered.kind === \"skip\") {\n return { nodes: previousNodes.slice(0, 1), consumed: previousNodes.length };\n }\n\n onInstance?.(rendered.instance);\n const childOptions = withHydrationComponentStack(\n options,\n getClassComponentName(type),\n );\n\n try {\n return reconcileNode(\n parent,\n previousNodes,\n rendered.node,\n runtime,\n `${path}.class`,\n childOptions,\n );\n } catch (error) {\n const fallbackNode = recoverClassComponentError(\n rendered.type,\n rendered.instance,\n error,\n );\n\n if (fallbackNode === undefined) {\n throw error;\n }\n\n return reconcileNode(\n parent,\n previousNodes,\n fallbackNode,\n runtime,\n `${path}.class.fallback`,\n childOptions,\n );\n }\n}\n\nexport function renderClassComponentWithRuntime(\n type: ClassComponentType,\n props: Record<string, unknown>,\n runtime: RootRuntime,\n path: string,\n): ClassComponentRenderResult {\n return renderWithRootRuntime(runtime, path, () => {\n const instanceRef = useRef<ClassComponentInstance | undefined>(undefined);\n const didCommitRef = useRef(false);\n const previousInstance = instanceRef.current;\n const hasDifferentType =\n previousInstance !== undefined && !(previousInstance instanceof type);\n const replacedInstance = hasDifferentType ? previousInstance : undefined;\n\n if (hasDifferentType) {\n classLifecycleSnapshots.delete(previousInstance);\n didCommitRef.current = false;\n instanceRef.current = undefined;\n }\n\n const instance =\n instanceRef.current !== undefined && instanceRef.current instanceof type\n ? instanceRef.current\n : new type(props);\n const previousProps = instance.props;\n const snapshot = classLifecycleSnapshots.get(instance);\n const previousState = snapshot?.previousState ?? instance.state ?? {};\n const nextState = instance.state ?? {};\n\n instanceRef.current = instance;\n installClassUpdateMethods(instance, runtime);\n const shouldSkipUpdate =\n didCommitRef.current &&\n snapshot?.force !== true &&\n instance.shouldComponentUpdate?.(props, nextState) === false;\n\n instance.props = props;\n installClassLifecycleEffects(\n instance,\n didCommitRef,\n previousProps,\n previousState,\n shouldSkipUpdate,\n replacedInstance,\n );\n\n if (shouldSkipUpdate) {\n return { kind: \"skip\" };\n }\n\n try {\n const node = instance.render();\n\n if (didCommitRef.current) {\n classLifecycleSnapshots.set(instance, {\n ...classLifecycleSnapshots.get(instance),\n snapshot: instance.getSnapshotBeforeUpdate?.(\n previousProps ?? {},\n previousState,\n ),\n });\n }\n\n return { kind: \"render\", node, instance, type };\n } catch (error) {\n const fallbackNode = recoverClassComponentError(type, instance, error);\n\n if (fallbackNode === undefined) {\n throw error;\n }\n\n return { kind: \"render\", node: fallbackNode, instance, type };\n }\n });\n}\n\nexport function recoverClassComponentError(\n type: ClassComponentType,\n instance: ClassComponentInstance,\n error: unknown,\n): ReactCompatNode | undefined {\n if (isThenable(error) || !isErrorBoundaryClass(type, instance)) {\n return undefined;\n }\n\n const normalizedError =\n error instanceof Error ? error : new Error(String(error));\n const derivedState = type.getDerivedStateFromError?.(normalizedError);\n\n if (derivedState !== undefined && derivedState !== null) {\n instance.state = {\n ...instance.state,\n ...derivedState,\n };\n }\n\n instance.componentDidCatch?.(normalizedError, { componentStack: \"\" });\n return instance.render();\n}\n\nexport function isClassComponentType(value: unknown): value is ClassComponentType {\n return (\n typeof value === \"function\" &&\n typeof (value as { prototype?: { render?: unknown } }).prototype?.render ===\n \"function\"\n );\n}\n\nfunction getClassComponentName(type: ClassComponentType): string {\n return type.name === \"\" ? \"Anonymous\" : type.name;\n}\n\nexport function reconcileErrorBoundary(\n parent: ParentNode,\n previousNodes: readonly Node[],\n element: ReactCompatElement,\n runtime: RootRuntime,\n path: string,\n options: RenderOptions,\n reconcileNode: ReconcileNode,\n): ReconcileResult {\n try {\n return reconcileNode(\n parent,\n previousNodes,\n element.props.children,\n runtime,\n `${path}.eb`,\n options,\n );\n } catch (error) {\n if (isThenable(error)) {\n throw error;\n }\n\n const normalizedError =\n error instanceof Error ? error : new Error(String(error));\n const onError = element.props.onError;\n\n if (typeof onError === \"function\") {\n (onError as (error: Error) => void)(normalizedError);\n }\n\n const fallback = element.props.fallback;\n const fallbackNode =\n typeof fallback === \"function\"\n ? (fallback as (error: Error) => ReactCompatNode)(normalizedError)\n : null;\n\n return reconcileNode(\n parent,\n previousNodes,\n fallbackNode,\n runtime,\n `${path}.eb.fallback`,\n options,\n );\n }\n}\n\nfunction installClassUpdateMethods(\n instance: ClassComponentInstance,\n runtime: RootRuntime,\n): void {\n instance.setState = (partial, callback): void => {\n const previousState = instance.state ?? {};\n if (!classLifecycleSnapshots.has(instance)) {\n classLifecycleSnapshots.set(instance, { previousState });\n }\n const nextPartial =\n typeof partial === \"function\"\n ? partial(previousState, instance.props)\n : partial;\n\n if (nextPartial !== null) {\n instance.state = {\n ...previousState,\n ...nextPartial,\n };\n }\n\n runtime.rerender();\n callback?.call(instance);\n };\n instance.forceUpdate = (callback): void => {\n classLifecycleSnapshots.set(instance, {\n previousState: instance.state ?? {},\n force: true,\n });\n runtime.rerender();\n callback?.call(instance);\n };\n}\n\nfunction installClassLifecycleEffects(\n instance: ClassComponentInstance,\n didCommitRef: { current: boolean },\n previousProps: Record<string, unknown> | undefined,\n previousState: Record<string, unknown>,\n skipUpdate: boolean,\n replacedInstance?: ClassComponentInstance,\n): void {\n useLayoutEffect(() => {\n replacedInstance?.componentWillUnmount?.();\n\n if (skipUpdate) {\n classLifecycleSnapshots.delete(instance);\n return;\n }\n\n if (didCommitRef.current) {\n instance.componentDidUpdate?.(\n previousProps ?? {},\n previousState,\n classLifecycleSnapshots.get(instance)?.snapshot,\n );\n } else {\n didCommitRef.current = true;\n instance.componentDidMount?.();\n }\n\n classLifecycleSnapshots.delete(instance);\n });\n\n useLayoutEffect(() => {\n return () => {\n instance.componentWillUnmount?.();\n classLifecycleSnapshots.delete(instance);\n };\n }, []);\n}\n\nfunction isErrorBoundaryClass(\n type: ClassComponentType,\n instance: ClassComponentInstance,\n): boolean {\n return (\n typeof type.getDerivedStateFromError === \"function\" ||\n typeof instance.componentDidCatch === \"function\"\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"class-component.js","sourceRoot":"","sources":["../src/class-component.ts"],"names":[],"mappings":"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","sourcesContent":["import { renderWithRootRuntime, useLayoutEffect, useRef, type RootRuntime } from \"./hooks.js\";\nimport type { ReactCompatElement, ReactCompatNode } from \"./element.js\";\nimport { withHydrationComponentStack, type RenderOptions } from \"./hydration.js\";\nimport type { ReconcileNode, ReconcileResult } from \"./reconcile-types.js\";\nimport { isThenable } from \"./thenable.js\";\nimport { shallowEqual } from \"./prop-comparison.js\";\n\nexport interface ClassComponentInstance {\n props: Record<string, unknown>;\n state?: Record<string, unknown>;\n setState?: (\n partial:\n | Record<string, unknown>\n | ((\n previousState: Record<string, unknown>,\n props: Record<string, unknown>,\n ) => Record<string, unknown> | null),\n callback?: () => void,\n ) => void;\n forceUpdate?: (callback?: () => void) => void;\n render(): ReactCompatNode;\n componentDidMount?: () => void;\n componentDidUpdate?: (\n previousProps: Record<string, unknown>,\n previousState: Record<string, unknown>,\n snapshot?: unknown,\n ) => void;\n componentWillUnmount?: () => void;\n shouldComponentUpdate?: (\n nextProps: Record<string, unknown>,\n nextState: Record<string, unknown>,\n ) => boolean;\n getSnapshotBeforeUpdate?: (\n previousProps: Record<string, unknown>,\n previousState: Record<string, unknown>,\n ) => unknown;\n componentDidCatch?: (error: Error, info: { componentStack: string }) => void;\n}\n\nexport interface ClassComponentType {\n new (props: Record<string, unknown>): ClassComponentInstance;\n getDerivedStateFromProps?: (\n nextProps: Record<string, unknown>,\n previousState: Record<string, unknown>,\n ) => Record<string, unknown> | null;\n getDerivedStateFromError?: (error: Error) => Record<string, unknown> | null;\n}\n\nexport class Component<\n P extends Record<string, unknown> = Record<string, unknown>,\n S extends Record<string, unknown> = Record<string, unknown>,\n> {\n props: P;\n state?: S;\n setState!: ClassComponentInstance[\"setState\"];\n forceUpdate!: ClassComponentInstance[\"forceUpdate\"];\n\n constructor(props: P) {\n this.props = props;\n }\n\n render(): ReactCompatNode {\n return null;\n }\n}\n\nexport class PureComponent<\n P extends Record<string, unknown> = Record<string, unknown>,\n S extends Record<string, unknown> = Record<string, unknown>,\n> extends Component<P, S> {\n shouldComponentUpdate(nextProps: P, nextState: S): boolean {\n return !shallowEqual(this.props, nextProps) || !shallowEqual(this.state ?? {}, nextState ?? {});\n }\n}\n\ninterface ClassLifecycleSnapshot {\n previousState?: Record<string, unknown>;\n force?: boolean;\n snapshot?: unknown;\n}\n\nconst classLifecycleSnapshots = new WeakMap<\n ClassComponentInstance,\n ClassLifecycleSnapshot\n>();\n\nexport type ClassComponentRenderResult =\n | {\n kind: \"render\";\n node: ReactCompatNode;\n instance: ClassComponentInstance;\n type: ClassComponentType;\n }\n | { kind: \"skip\" };\n\nexport function reconcileClassComponent(\n parent: ParentNode,\n previousNodes: readonly Node[],\n type: ClassComponentType,\n props: Record<string, unknown>,\n runtime: RootRuntime,\n path: string,\n options: RenderOptions,\n reconcileNode: ReconcileNode,\n onInstance?: (instance: ClassComponentInstance) => void,\n): ReconcileResult {\n const rendered = renderClassComponentWithRuntime(type, props, runtime, path);\n\n if (rendered.kind === \"skip\") {\n return { nodes: previousNodes.slice(0, 1), consumed: previousNodes.length };\n }\n\n onInstance?.(rendered.instance);\n const childOptions = withHydrationComponentStack(\n options,\n getClassComponentName(type),\n );\n\n try {\n return reconcileNode(\n parent,\n previousNodes,\n rendered.node,\n runtime,\n `${path}.class`,\n childOptions,\n );\n } catch (error) {\n const fallbackNode = recoverClassComponentError(\n rendered.type,\n rendered.instance,\n error,\n );\n\n if (fallbackNode === undefined) {\n throw error;\n }\n\n return reconcileNode(\n parent,\n previousNodes,\n fallbackNode,\n runtime,\n `${path}.class.fallback`,\n childOptions,\n );\n }\n}\n\nexport function renderClassComponentWithRuntime(\n type: ClassComponentType,\n props: Record<string, unknown>,\n runtime: RootRuntime,\n path: string,\n): ClassComponentRenderResult {\n return renderWithRootRuntime(runtime, path, () => {\n const instanceRef = useRef<ClassComponentInstance | undefined>(undefined);\n const didCommitRef = useRef(false);\n const previousInstance = instanceRef.current;\n const hasDifferentType =\n previousInstance !== undefined && !(previousInstance instanceof type);\n const replacedInstance = hasDifferentType ? previousInstance : undefined;\n\n if (hasDifferentType) {\n classLifecycleSnapshots.delete(previousInstance);\n didCommitRef.current = false;\n instanceRef.current = undefined;\n }\n\n const instance =\n instanceRef.current !== undefined && instanceRef.current instanceof type\n ? instanceRef.current\n : new type(props);\n const previousProps = instance.props;\n const snapshot = classLifecycleSnapshots.get(instance);\n const previousState = snapshot?.previousState ?? instance.state ?? {};\n\n instanceRef.current = instance;\n installClassUpdateMethods(instance, runtime);\n applyDerivedStateFromProps(type, instance, props, previousState);\n const nextState = instance.state ?? {};\n const shouldSkipUpdate =\n didCommitRef.current &&\n snapshot?.force !== true &&\n instance.shouldComponentUpdate?.(props, nextState) === false;\n\n instance.props = props;\n installClassLifecycleEffects(\n instance,\n didCommitRef,\n previousProps,\n previousState,\n shouldSkipUpdate,\n replacedInstance,\n );\n\n if (shouldSkipUpdate) {\n return { kind: \"skip\" };\n }\n\n try {\n const node = instance.render();\n\n if (didCommitRef.current) {\n classLifecycleSnapshots.set(instance, {\n ...classLifecycleSnapshots.get(instance),\n snapshot: instance.getSnapshotBeforeUpdate?.(\n previousProps ?? {},\n previousState,\n ),\n });\n }\n\n return { kind: \"render\", node, instance, type };\n } catch (error) {\n const fallbackNode = recoverClassComponentError(type, instance, error);\n\n if (fallbackNode === undefined) {\n throw error;\n }\n\n return { kind: \"render\", node: fallbackNode, instance, type };\n }\n });\n}\n\nexport function applyDerivedStateFromProps(\n type: ClassComponentType,\n instance: ClassComponentInstance,\n nextProps: Record<string, unknown>,\n previousState: Record<string, unknown>,\n): void {\n const derivedState = type.getDerivedStateFromProps?.(nextProps, previousState);\n\n if (derivedState === undefined || derivedState === null) {\n return;\n }\n\n instance.state = {\n ...instance.state,\n ...derivedState,\n };\n}\n\nexport function recoverClassComponentError(\n type: ClassComponentType,\n instance: ClassComponentInstance,\n error: unknown,\n): ReactCompatNode | undefined {\n if (isThenable(error) || !isErrorBoundaryClass(type, instance)) {\n return undefined;\n }\n\n const normalizedError =\n error instanceof Error ? error : new Error(String(error));\n const derivedState = type.getDerivedStateFromError?.(normalizedError);\n\n if (derivedState !== undefined && derivedState !== null) {\n instance.state = {\n ...instance.state,\n ...derivedState,\n };\n }\n\n instance.componentDidCatch?.(normalizedError, { componentStack: \"\" });\n return instance.render();\n}\n\nexport function isClassComponentType(value: unknown): value is ClassComponentType {\n return (\n typeof value === \"function\" &&\n typeof (value as { prototype?: { render?: unknown } }).prototype?.render ===\n \"function\"\n );\n}\n\nfunction getClassComponentName(type: ClassComponentType): string {\n return type.name === \"\" ? \"Anonymous\" : type.name;\n}\n\nexport function reconcileErrorBoundary(\n parent: ParentNode,\n previousNodes: readonly Node[],\n element: ReactCompatElement,\n runtime: RootRuntime,\n path: string,\n options: RenderOptions,\n reconcileNode: ReconcileNode,\n): ReconcileResult {\n try {\n return reconcileNode(\n parent,\n previousNodes,\n element.props.children,\n runtime,\n `${path}.eb`,\n options,\n );\n } catch (error) {\n if (isThenable(error)) {\n throw error;\n }\n\n const normalizedError =\n error instanceof Error ? error : new Error(String(error));\n const onError = element.props.onError;\n\n if (typeof onError === \"function\") {\n (onError as (error: Error) => void)(normalizedError);\n }\n\n const fallback = element.props.fallback;\n const fallbackNode =\n typeof fallback === \"function\"\n ? (fallback as (error: Error) => ReactCompatNode)(normalizedError)\n : null;\n\n return reconcileNode(\n parent,\n previousNodes,\n fallbackNode,\n runtime,\n `${path}.eb.fallback`,\n options,\n );\n }\n}\n\nfunction installClassUpdateMethods(\n instance: ClassComponentInstance,\n runtime: RootRuntime,\n): void {\n instance.setState = (partial, callback): void => {\n const previousState = instance.state ?? {};\n if (!classLifecycleSnapshots.has(instance)) {\n classLifecycleSnapshots.set(instance, { previousState });\n }\n const nextPartial =\n typeof partial === \"function\"\n ? partial(previousState, instance.props)\n : partial;\n\n if (nextPartial !== null) {\n instance.state = {\n ...previousState,\n ...nextPartial,\n };\n }\n\n runtime.rerender();\n callback?.call(instance);\n };\n instance.forceUpdate = (callback): void => {\n classLifecycleSnapshots.set(instance, {\n previousState: instance.state ?? {},\n force: true,\n });\n runtime.rerender();\n callback?.call(instance);\n };\n}\n\nfunction installClassLifecycleEffects(\n instance: ClassComponentInstance,\n didCommitRef: { current: boolean },\n previousProps: Record<string, unknown> | undefined,\n previousState: Record<string, unknown>,\n skipUpdate: boolean,\n replacedInstance?: ClassComponentInstance,\n): void {\n useLayoutEffect(() => {\n replacedInstance?.componentWillUnmount?.();\n\n if (skipUpdate) {\n classLifecycleSnapshots.delete(instance);\n return;\n }\n\n if (didCommitRef.current) {\n instance.componentDidUpdate?.(\n previousProps ?? {},\n previousState,\n classLifecycleSnapshots.get(instance)?.snapshot,\n );\n } else {\n didCommitRef.current = true;\n instance.componentDidMount?.();\n }\n\n classLifecycleSnapshots.delete(instance);\n });\n\n useLayoutEffect(() => {\n return () => {\n instance.componentWillUnmount?.();\n classLifecycleSnapshots.delete(instance);\n };\n }, []);\n}\n\nfunction isErrorBoundaryClass(\n type: ClassComponentType,\n instance: ClassComponentInstance,\n): boolean {\n return (\n typeof type.getDerivedStateFromError === \"function\" ||\n typeof instance.componentDidCatch === \"function\"\n );\n}\n"]}
|
package/dist/element.d.ts
CHANGED
|
@@ -80,6 +80,7 @@ export declare function cloneElement<P extends Record<string, unknown>>(element:
|
|
|
80
80
|
export declare const isValidElement: typeof isReactCompatElement;
|
|
81
81
|
export declare const Children: {
|
|
82
82
|
map<T>(children: ReactCompatNode, fn: (child: Exclude<ReactCompatNode, null | undefined | boolean>, index: number) => T): T[] | null;
|
|
83
|
+
forEach(children: ReactCompatNode, fn: (child: Exclude<ReactCompatNode, null | undefined | boolean>, index: number) => void): void;
|
|
83
84
|
count(children: ReactCompatNode): number;
|
|
84
85
|
toArray(children: ReactCompatNode): Exclude<ReactCompatNode, null | undefined | boolean>[];
|
|
85
86
|
only(children: ReactCompatNode): Exclude<ReactCompatNode, null | undefined | boolean>;
|
package/dist/element.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"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"}
|
package/dist/element.js
CHANGED
|
@@ -125,6 +125,11 @@ export const Children = {
|
|
|
125
125
|
}
|
|
126
126
|
return flattenChildren(children).map((child, index) => fn(child, index));
|
|
127
127
|
},
|
|
128
|
+
forEach(children, fn) {
|
|
129
|
+
toChildArray(children).forEach((child, index) => {
|
|
130
|
+
fn(child, index);
|
|
131
|
+
});
|
|
132
|
+
},
|
|
128
133
|
count(children) {
|
|
129
134
|
if (children === null || children === undefined) {
|
|
130
135
|
return 0;
|
package/dist/element.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element.js","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"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","sourcesContent":["export const REACT_COMPAT_ELEMENT_TYPE = Symbol.for(\"modular.react.element\");\nexport const ERROR_BOUNDARY_TYPE = Symbol.for(\"modular.react.error_boundary\");\nexport const FORWARD_REF_TYPE = Symbol.for(\"modular.react.forward_ref\");\nexport const MEMO_TYPE = Symbol.for(\"modular.react.memo\");\nexport const LAZY_TYPE = Symbol.for(\"modular.react.lazy\");\nexport const STRICT_MODE_TYPE = Symbol.for(\"modular.react.strict_mode\");\nexport const PORTAL_TYPE = Symbol.for(\"modular.react.portal\");\nconst REACT_COMPAT_PROVIDER_TYPE = Symbol.for(\"modular.react.provider\");\nexport const Fragment = Symbol.for(\"modular.react.fragment\");\nexport const Suspense = Symbol.for(\"modular.react.suspense\");\nexport const SuspenseList = Symbol.for(\"modular.react.suspense_list\");\nexport const Activity = Symbol.for(\"modular.react.activity\");\nexport const Profiler = Symbol.for(\"modular.react.profiler\");\n\nexport interface ReactCompatProviderType {\n $$typeof: symbol;\n context: unknown;\n}\n\nexport interface ReactCompatContextProviderShorthand {\n Provider: ReactCompatProviderType;\n Consumer: unknown;\n}\n\nexport type ElementType<P = Record<string, unknown>> =\n | string\n | typeof Fragment\n | typeof Suspense\n | typeof SuspenseList\n | typeof Activity\n | typeof Profiler\n | typeof ERROR_BOUNDARY_TYPE\n | typeof STRICT_MODE_TYPE\n | ReactCompatContextProviderShorthand\n | ReactCompatProviderType\n | ForwardRefType<P>\n | MemoType<P>\n | LazyType<P>\n | ((props: P) => ReactCompatNode | PromiseLike<ReactCompatNode>)\n | (new (props: P) => { render(): ReactCompatNode });\n\nexport type ReactCompatNode =\n | ReactCompatElement\n | ReactCompatPortal\n | string\n | number\n | boolean\n | null\n | undefined\n | ReactCompatNode[];\n\nexport interface ReactCompatElement<P = Record<string, unknown>> {\n $$typeof: typeof REACT_COMPAT_ELEMENT_TYPE;\n type: ElementType<P>;\n key: string | null;\n ref: unknown;\n props: P & { children?: ReactCompatNode };\n}\n\nexport interface ReactCompatPortal {\n $$typeof: typeof PORTAL_TYPE;\n container: Element;\n children: ReactCompatNode;\n key: string | null;\n}\n\nexport function createElement<P extends Record<string, unknown>>(\n type: ElementType<P>,\n config: (P & { key?: unknown; ref?: unknown }) | null,\n ...children: ReactCompatNode[]\n): ReactCompatElement<P> {\n const normalizedType = normalizeElementType(type);\n const props = applyDefaultProps(normalizedType, { ...config }) as P & {\n children?: ReactCompatNode;\n key?: unknown;\n ref?: unknown;\n };\n const key = props.key === undefined ? null : String(props.key);\n const ref = props.ref ?? null;\n\n delete props.key;\n delete props.ref;\n\n if (children.length === 1) {\n props.children = children[0];\n } else if (children.length > 1) {\n props.children = children;\n }\n\n return {\n $$typeof: REACT_COMPAT_ELEMENT_TYPE,\n type: normalizedType as ElementType<P>,\n key,\n ref,\n props: props as P & { children?: ReactCompatNode },\n };\n}\n\nexport function isReactCompatElement(\n value: unknown,\n): value is ReactCompatElement {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as { $$typeof?: unknown }).$$typeof === REACT_COMPAT_ELEMENT_TYPE\n );\n}\n\nexport function createPortal(\n children: ReactCompatNode,\n container: Element,\n key?: unknown,\n): ReactCompatPortal {\n return {\n $$typeof: PORTAL_TYPE,\n container,\n children,\n key: key === undefined ? null : String(key),\n };\n}\n\nexport function isReactCompatPortal(value: unknown): value is ReactCompatPortal {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as { $$typeof?: unknown }).$$typeof === PORTAL_TYPE\n );\n}\n\nexport function createRef<T>(): { current: T | null } {\n return { current: null };\n}\n\nexport interface ForwardRefType<P = Record<string, unknown>> {\n $$typeof: typeof FORWARD_REF_TYPE;\n render: (props: P, ref: unknown) => ReactCompatNode;\n}\n\nexport interface MemoType<P = Record<string, unknown>> {\n $$typeof: typeof MEMO_TYPE;\n type: ElementType<P>;\n compare?: (previous: P, next: P) => boolean;\n}\n\nexport interface LazyType<P = Record<string, unknown>> {\n $$typeof: typeof LAZY_TYPE;\n load: () => Promise<{ default: ElementType<P> }>;\n status: \"uninitialized\" | \"pending\" | \"resolved\" | \"rejected\";\n promise?: Promise<void>;\n resolved?: ElementType<P>;\n error?: unknown;\n}\n\nexport function forwardRef<P, T>(\n render: (props: P, ref: { current: T | null } | ((value: T | null) => void) | null) => ReactCompatNode,\n): ForwardRefType<P & { ref?: unknown }> {\n return { $$typeof: FORWARD_REF_TYPE, render: render as ForwardRefType<P>[\"render\"] };\n}\n\nexport function memo<P>(\n type: ElementType<P>,\n compare?: (previous: P, next: P) => boolean,\n): MemoType<P> {\n return compare === undefined\n ? { $$typeof: MEMO_TYPE, type }\n : { $$typeof: MEMO_TYPE, type, compare };\n}\n\nexport function lazy<P>(\n load: () => Promise<{ default: ElementType<P> }>,\n): LazyType<P> {\n return {\n $$typeof: LAZY_TYPE,\n load,\n status: \"uninitialized\",\n };\n}\n\nexport const StrictMode = STRICT_MODE_TYPE;\n\nexport function cloneElement<P extends Record<string, unknown>>(\n element: ReactCompatElement<P>,\n props: Partial<P> | null,\n ...children: ReactCompatNode[]\n): ReactCompatElement<P> {\n const nextProps = applyDefaultProps(element.type, {\n ...element.props,\n ...props,\n }) as P & { key?: unknown; ref?: unknown };\n const key = nextProps.key === undefined ? element.key : String(nextProps.key);\n const ref = nextProps.ref === undefined ? element.ref : nextProps.ref;\n\n delete nextProps.key;\n delete nextProps.ref;\n\n if (children.length === 1) {\n (nextProps as P & { children?: ReactCompatNode }).children = children[0];\n } else if (children.length > 1) {\n (nextProps as P & { children?: ReactCompatNode }).children = children;\n }\n\n return {\n $$typeof: REACT_COMPAT_ELEMENT_TYPE,\n type: element.type,\n key,\n ref,\n props: nextProps as P & { children?: ReactCompatNode },\n };\n}\n\nfunction normalizeElementType<P>(type: ElementType<P>): ElementType<P> {\n return isReactCompatContextProviderShorthand(type) ? (type.Provider as ElementType<P>) : type;\n}\n\nfunction applyDefaultProps(\n type: unknown,\n props: Record<string, unknown>,\n): Record<string, unknown> {\n const defaultProps = (type as { defaultProps?: Record<string, unknown> } | undefined)\n ?.defaultProps;\n\n if (defaultProps === undefined) {\n return props;\n }\n\n for (const [name, value] of Object.entries(defaultProps)) {\n if (props[name] === undefined) {\n props[name] = value;\n }\n }\n\n return props;\n}\n\nfunction isReactCompatContextProviderShorthand(\n value: unknown,\n): value is ReactCompatContextProviderShorthand {\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n\n const provider = (value as { Provider?: unknown }).Provider;\n\n return (\n typeof provider === \"object\" &&\n provider !== null &&\n (provider as { $$typeof?: unknown }).$$typeof === REACT_COMPAT_PROVIDER_TYPE\n );\n}\n\nexport const isValidElement = isReactCompatElement;\n\nexport const Children = {\n map<T>(\n children: ReactCompatNode,\n fn: (child: Exclude<ReactCompatNode, null | undefined | boolean>, index: number) => T,\n ): T[] | null {\n if (children === null || children === undefined) {\n return null;\n }\n\n return flattenChildren(children).map((child, index) =>\n fn(child as Exclude<ReactCompatNode, null | undefined | boolean>, index),\n );\n },\n count(children: ReactCompatNode): number {\n if (children === null || children === undefined) {\n return 0;\n }\n\n return flattenChildren(children).length;\n },\n toArray(children: ReactCompatNode): Exclude<ReactCompatNode, null | undefined | boolean>[] {\n return toChildArray(children);\n },\n only(children: ReactCompatNode): Exclude<ReactCompatNode, null | undefined | boolean> {\n const array = toChildArray(children);\n\n if (array.length !== 1) {\n throw new Error(\"Expected exactly one child.\");\n }\n\n return array[0] as Exclude<ReactCompatNode, null | undefined | boolean>;\n },\n};\n\nfunction toChildArray(\n children: ReactCompatNode,\n): Exclude<ReactCompatNode, null | undefined | boolean>[] {\n return flattenChildren(children).filter(\n (child): child is Exclude<ReactCompatNode, null | undefined | boolean> =>\n child !== null && child !== undefined && typeof child !== \"boolean\",\n );\n}\n\nfunction flattenChildren(children: ReactCompatNode): ReactCompatNode[] {\n if (Array.isArray(children)) {\n return children.flatMap((child) => flattenChildren(child));\n }\n\n return [children];\n}\n\nexport interface ErrorBoundaryOptions {\n fallback: (error: Error) => ReactCompatNode;\n onError?: (error: Error) => void;\n}\n\nexport function createErrorBoundary(\n options: ErrorBoundaryOptions,\n children: ReactCompatNode,\n): ReactCompatElement<ErrorBoundaryOptions & { children: ReactCompatNode }> {\n return createElement(ERROR_BOUNDARY_TYPE, {\n ...options,\n children,\n });\n}\n"]}
|
|
1
|
+
{"version":3,"file":"element.js","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"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","sourcesContent":["export const REACT_COMPAT_ELEMENT_TYPE = Symbol.for(\"modular.react.element\");\nexport const ERROR_BOUNDARY_TYPE = Symbol.for(\"modular.react.error_boundary\");\nexport const FORWARD_REF_TYPE = Symbol.for(\"modular.react.forward_ref\");\nexport const MEMO_TYPE = Symbol.for(\"modular.react.memo\");\nexport const LAZY_TYPE = Symbol.for(\"modular.react.lazy\");\nexport const STRICT_MODE_TYPE = Symbol.for(\"modular.react.strict_mode\");\nexport const PORTAL_TYPE = Symbol.for(\"modular.react.portal\");\nconst REACT_COMPAT_PROVIDER_TYPE = Symbol.for(\"modular.react.provider\");\nexport const Fragment = Symbol.for(\"modular.react.fragment\");\nexport const Suspense = Symbol.for(\"modular.react.suspense\");\nexport const SuspenseList = Symbol.for(\"modular.react.suspense_list\");\nexport const Activity = Symbol.for(\"modular.react.activity\");\nexport const Profiler = Symbol.for(\"modular.react.profiler\");\n\nexport interface ReactCompatProviderType {\n $$typeof: symbol;\n context: unknown;\n}\n\nexport interface ReactCompatContextProviderShorthand {\n Provider: ReactCompatProviderType;\n Consumer: unknown;\n}\n\nexport type ElementType<P = Record<string, unknown>> =\n | string\n | typeof Fragment\n | typeof Suspense\n | typeof SuspenseList\n | typeof Activity\n | typeof Profiler\n | typeof ERROR_BOUNDARY_TYPE\n | typeof STRICT_MODE_TYPE\n | ReactCompatContextProviderShorthand\n | ReactCompatProviderType\n | ForwardRefType<P>\n | MemoType<P>\n | LazyType<P>\n | ((props: P) => ReactCompatNode | PromiseLike<ReactCompatNode>)\n | (new (props: P) => { render(): ReactCompatNode });\n\nexport type ReactCompatNode =\n | ReactCompatElement\n | ReactCompatPortal\n | string\n | number\n | boolean\n | null\n | undefined\n | ReactCompatNode[];\n\nexport interface ReactCompatElement<P = Record<string, unknown>> {\n $$typeof: typeof REACT_COMPAT_ELEMENT_TYPE;\n type: ElementType<P>;\n key: string | null;\n ref: unknown;\n props: P & { children?: ReactCompatNode };\n}\n\nexport interface ReactCompatPortal {\n $$typeof: typeof PORTAL_TYPE;\n container: Element;\n children: ReactCompatNode;\n key: string | null;\n}\n\nexport function createElement<P extends Record<string, unknown>>(\n type: ElementType<P>,\n config: (P & { key?: unknown; ref?: unknown }) | null,\n ...children: ReactCompatNode[]\n): ReactCompatElement<P> {\n const normalizedType = normalizeElementType(type);\n const props = applyDefaultProps(normalizedType, { ...config }) as P & {\n children?: ReactCompatNode;\n key?: unknown;\n ref?: unknown;\n };\n const key = props.key === undefined ? null : String(props.key);\n const ref = props.ref ?? null;\n\n delete props.key;\n delete props.ref;\n\n if (children.length === 1) {\n props.children = children[0];\n } else if (children.length > 1) {\n props.children = children;\n }\n\n return {\n $$typeof: REACT_COMPAT_ELEMENT_TYPE,\n type: normalizedType as ElementType<P>,\n key,\n ref,\n props: props as P & { children?: ReactCompatNode },\n };\n}\n\nexport function isReactCompatElement(\n value: unknown,\n): value is ReactCompatElement {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as { $$typeof?: unknown }).$$typeof === REACT_COMPAT_ELEMENT_TYPE\n );\n}\n\nexport function createPortal(\n children: ReactCompatNode,\n container: Element,\n key?: unknown,\n): ReactCompatPortal {\n return {\n $$typeof: PORTAL_TYPE,\n container,\n children,\n key: key === undefined ? null : String(key),\n };\n}\n\nexport function isReactCompatPortal(value: unknown): value is ReactCompatPortal {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as { $$typeof?: unknown }).$$typeof === PORTAL_TYPE\n );\n}\n\nexport function createRef<T>(): { current: T | null } {\n return { current: null };\n}\n\nexport interface ForwardRefType<P = Record<string, unknown>> {\n $$typeof: typeof FORWARD_REF_TYPE;\n render: (props: P, ref: unknown) => ReactCompatNode;\n}\n\nexport interface MemoType<P = Record<string, unknown>> {\n $$typeof: typeof MEMO_TYPE;\n type: ElementType<P>;\n compare?: (previous: P, next: P) => boolean;\n}\n\nexport interface LazyType<P = Record<string, unknown>> {\n $$typeof: typeof LAZY_TYPE;\n load: () => Promise<{ default: ElementType<P> }>;\n status: \"uninitialized\" | \"pending\" | \"resolved\" | \"rejected\";\n promise?: Promise<void>;\n resolved?: ElementType<P>;\n error?: unknown;\n}\n\nexport function forwardRef<P, T>(\n render: (props: P, ref: { current: T | null } | ((value: T | null) => void) | null) => ReactCompatNode,\n): ForwardRefType<P & { ref?: unknown }> {\n return { $$typeof: FORWARD_REF_TYPE, render: render as ForwardRefType<P>[\"render\"] };\n}\n\nexport function memo<P>(\n type: ElementType<P>,\n compare?: (previous: P, next: P) => boolean,\n): MemoType<P> {\n return compare === undefined\n ? { $$typeof: MEMO_TYPE, type }\n : { $$typeof: MEMO_TYPE, type, compare };\n}\n\nexport function lazy<P>(\n load: () => Promise<{ default: ElementType<P> }>,\n): LazyType<P> {\n return {\n $$typeof: LAZY_TYPE,\n load,\n status: \"uninitialized\",\n };\n}\n\nexport const StrictMode = STRICT_MODE_TYPE;\n\nexport function cloneElement<P extends Record<string, unknown>>(\n element: ReactCompatElement<P>,\n props: Partial<P> | null,\n ...children: ReactCompatNode[]\n): ReactCompatElement<P> {\n const nextProps = applyDefaultProps(element.type, {\n ...element.props,\n ...props,\n }) as P & { key?: unknown; ref?: unknown };\n const key = nextProps.key === undefined ? element.key : String(nextProps.key);\n const ref = nextProps.ref === undefined ? element.ref : nextProps.ref;\n\n delete nextProps.key;\n delete nextProps.ref;\n\n if (children.length === 1) {\n (nextProps as P & { children?: ReactCompatNode }).children = children[0];\n } else if (children.length > 1) {\n (nextProps as P & { children?: ReactCompatNode }).children = children;\n }\n\n return {\n $$typeof: REACT_COMPAT_ELEMENT_TYPE,\n type: element.type,\n key,\n ref,\n props: nextProps as P & { children?: ReactCompatNode },\n };\n}\n\nfunction normalizeElementType<P>(type: ElementType<P>): ElementType<P> {\n return isReactCompatContextProviderShorthand(type) ? (type.Provider as ElementType<P>) : type;\n}\n\nfunction applyDefaultProps(\n type: unknown,\n props: Record<string, unknown>,\n): Record<string, unknown> {\n const defaultProps = (type as { defaultProps?: Record<string, unknown> } | undefined)\n ?.defaultProps;\n\n if (defaultProps === undefined) {\n return props;\n }\n\n for (const [name, value] of Object.entries(defaultProps)) {\n if (props[name] === undefined) {\n props[name] = value;\n }\n }\n\n return props;\n}\n\nfunction isReactCompatContextProviderShorthand(\n value: unknown,\n): value is ReactCompatContextProviderShorthand {\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n\n const provider = (value as { Provider?: unknown }).Provider;\n\n return (\n typeof provider === \"object\" &&\n provider !== null &&\n (provider as { $$typeof?: unknown }).$$typeof === REACT_COMPAT_PROVIDER_TYPE\n );\n}\n\nexport const isValidElement = isReactCompatElement;\n\nexport const Children = {\n map<T>(\n children: ReactCompatNode,\n fn: (child: Exclude<ReactCompatNode, null | undefined | boolean>, index: number) => T,\n ): T[] | null {\n if (children === null || children === undefined) {\n return null;\n }\n\n return flattenChildren(children).map((child, index) =>\n fn(child as Exclude<ReactCompatNode, null | undefined | boolean>, index),\n );\n },\n forEach(\n children: ReactCompatNode,\n fn: (child: Exclude<ReactCompatNode, null | undefined | boolean>, index: number) => void,\n ): void {\n toChildArray(children).forEach((child, index) => {\n fn(child, index);\n });\n },\n count(children: ReactCompatNode): number {\n if (children === null || children === undefined) {\n return 0;\n }\n\n return flattenChildren(children).length;\n },\n toArray(children: ReactCompatNode): Exclude<ReactCompatNode, null | undefined | boolean>[] {\n return toChildArray(children);\n },\n only(children: ReactCompatNode): Exclude<ReactCompatNode, null | undefined | boolean> {\n const array = toChildArray(children);\n\n if (array.length !== 1) {\n throw new Error(\"Expected exactly one child.\");\n }\n\n return array[0] as Exclude<ReactCompatNode, null | undefined | boolean>;\n },\n};\n\nfunction toChildArray(\n children: ReactCompatNode,\n): Exclude<ReactCompatNode, null | undefined | boolean>[] {\n return flattenChildren(children).filter(\n (child): child is Exclude<ReactCompatNode, null | undefined | boolean> =>\n child !== null && child !== undefined && typeof child !== \"boolean\",\n );\n}\n\nfunction flattenChildren(children: ReactCompatNode): ReactCompatNode[] {\n if (Array.isArray(children)) {\n return children.flatMap((child) => flattenChildren(child));\n }\n\n return [children];\n}\n\nexport interface ErrorBoundaryOptions {\n fallback: (error: Error) => ReactCompatNode;\n onError?: (error: Error) => void;\n}\n\nexport function createErrorBoundary(\n options: ErrorBoundaryOptions,\n children: ReactCompatNode,\n): ReactCompatElement<ErrorBoundaryOptions & { children: ReactCompatNode }> {\n return createElement(ERROR_BOUNDARY_TYPE, {\n ...options,\n children,\n });\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fiber-reconciler.d.ts","sourceRoot":"","sources":["../src/fiber-reconciler.ts"],"names":[],"mappings":"AAAA,OAAO,EAaL,KAAK,eAAe,EACrB,MAAM,cAAc,CAAC;AAUtB,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"fiber-reconciler.d.ts","sourceRoot":"","sources":["../src/fiber-reconciler.ts"],"names":[],"mappings":"AAAA,OAAO,EAaL,KAAK,eAAe,EACrB,MAAM,cAAc,CAAC;AAUtB,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAqBxD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,KAAK,GACV,KAAK,GAAG,SAAS,CAcnB;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS,CAmKxD;AAwDD,wBAAgB,YAAY,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAyB9C;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,KAAK,GAAG,SAAS,GAAG,IAAI,CAYnE;AA6CD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAqDvE"}
|
package/dist/fiber-reconciler.js
CHANGED
|
@@ -5,7 +5,7 @@ import {} from "./fiber.js";
|
|
|
5
5
|
import { DidCapture } from "./fiber-flags.js";
|
|
6
6
|
import { mergeLanes, NoLanes } from "./fiber-lanes.js";
|
|
7
7
|
import { isThenable } from "./thenable.js";
|
|
8
|
-
import { isClassComponentType, } from "./class-component.js";
|
|
8
|
+
import { applyDerivedStateFromProps, isClassComponentType, } from "./class-component.js";
|
|
9
9
|
import { areMemoPropsEqual } from "./prop-comparison.js";
|
|
10
10
|
export function performUnitOfWork(root, unit) {
|
|
11
11
|
let next;
|
|
@@ -310,6 +310,8 @@ function beginClassComponent(unit, type) {
|
|
|
310
310
|
? unit.alternate.stateNode
|
|
311
311
|
: undefined;
|
|
312
312
|
const instance = currentInstance ?? new type(nextProps);
|
|
313
|
+
const previousState = instance.state ?? {};
|
|
314
|
+
applyDerivedStateFromProps(type, instance, nextProps, previousState);
|
|
313
315
|
const nextState = instance.state ?? {};
|
|
314
316
|
unit.stateNode = instance;
|
|
315
317
|
if (unit.alternate !== undefined &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fiber-reconciler.js","sourceRoot":"","sources":["../src/fiber-reconciler.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ERROR_BOUNDARY_TYPE,\n FORWARD_REF_TYPE,\n Fragment,\n LAZY_TYPE,\n MEMO_TYPE,\n STRICT_MODE_TYPE,\n Suspense,\n SuspenseList,\n createElement,\n isReactCompatElement,\n type LazyType,\n type MemoType,\n type ReactCompatNode,\n} from \"./element.js\";\nimport {\n isReactCompatConsumer,\n isReactCompatProvider,\n popContextProvider,\n pushContextProvider,\n useContext,\n type ReactCompatProvider,\n} from \"./context.js\";\nimport { reconcileChildFibers } from \"./fiber-child.js\";\nimport { type Fiber, type FiberRoot } from \"./fiber.js\";\nimport { DidCapture } from \"./fiber-flags.js\";\nimport { mergeLanes, NoLanes } from \"./fiber-lanes.js\";\nimport { isThenable } from \"./thenable.js\";\nimport {\n isClassComponentType,\n type ClassComponentInstance,\n type ClassComponentType,\n} from \"./class-component.js\";\nimport { areMemoPropsEqual } from \"./prop-comparison.js\";\n\ninterface ContextProviderFiberState {\n provider: ReactCompatProvider<unknown>;\n pushed: boolean;\n}\n\ninterface SuspenseFiberState {\n didSuspend: boolean;\n}\n\nexport function performUnitOfWork(\n root: FiberRoot,\n unit: Fiber,\n): Fiber | undefined {\n let next: Fiber | undefined;\n\n try {\n next = beginWork(unit);\n } catch (error) {\n return captureThrownValue(root, unit, error);\n }\n\n if (next !== undefined) {\n return next;\n }\n\n return completeUnitOfWork(root, unit);\n}\n\nexport function beginWork(unit: Fiber): Fiber | undefined {\n if (unit.tag === \"host-root\") {\n const children = (unit.pendingProps as { children?: ReactCompatNode })\n .children;\n return reconcileChildFibers(\n unit,\n unit.alternate?.child,\n children as ReactCompatNode,\n );\n }\n\n if (unit.tag === \"host-component\") {\n const children = (unit.pendingProps as { children?: ReactCompatNode })\n .children;\n return reconcileChildFibers(\n unit,\n unit.alternate?.child,\n children as ReactCompatNode,\n );\n }\n\n if (unit.tag === \"fragment\") {\n return reconcileChildFibers(\n unit,\n unit.alternate?.child,\n unit.pendingProps as ReactCompatNode,\n );\n }\n\n if (unit.tag === \"strict-mode\") {\n previewStrictModeNode(\n (unit.pendingProps as { children?: ReactCompatNode }).children,\n );\n return reconcileChildFibers(\n unit,\n unit.alternate?.child,\n (unit.pendingProps as { children?: ReactCompatNode }).children,\n );\n }\n\n if (unit.tag === \"function-component\" && isFunctionComponentType(unit.type)) {\n const children = unit.type(unit.pendingProps as Record<string, unknown>);\n return reconcileChildFibers(unit, unit.alternate?.child, children);\n }\n\n if (unit.tag === \"forward-ref\" && isForwardRefType(unit.type)) {\n const props = unit.pendingProps as Record<string, unknown>;\n const children = unit.type.render(props, props.ref ?? null);\n return reconcileChildFibers(unit, unit.alternate?.child, children);\n }\n\n if (unit.tag === \"memo\" && isMemoType(unit.type)) {\n const previousProps = unit.alternate?.memoizedProps as\n | Record<string, unknown>\n | undefined;\n const nextProps = unit.pendingProps as Record<string, unknown>;\n\n if (\n unit.alternate !== undefined &&\n previousProps !== undefined &&\n areMemoPropsEqual(unit.type, previousProps, nextProps)\n ) {\n unit.child = unit.alternate.child;\n return undefined;\n }\n\n return reconcileChildFibers(\n unit,\n unit.alternate?.child,\n createElement(unit.type.type, nextProps),\n );\n }\n\n if (unit.tag === \"context-provider\" && isReactCompatProvider(unit.type)) {\n const props = unit.pendingProps as {\n value: unknown;\n children?: ReactCompatNode;\n };\n pushContextProvider(unit.type, props.value);\n unit.memoizedState = {\n provider: unit.type,\n pushed: true,\n } satisfies ContextProviderFiberState;\n return reconcileChildFibers(unit, unit.alternate?.child, props.children);\n }\n\n if (unit.tag === \"context-consumer\" && isReactCompatConsumer(unit.type)) {\n const props = unit.pendingProps as {\n children?: unknown;\n };\n const render =\n typeof props.children === \"function\"\n ? (props.children as (value: unknown) => ReactCompatNode)\n : () => null;\n return reconcileChildFibers(\n unit,\n unit.alternate?.child,\n render(useContext(unit.type.context)),\n );\n }\n\n if (unit.tag === \"class-component\" && isClassComponentType(unit.type)) {\n return beginClassComponent(unit, unit.type);\n }\n\n if (unit.tag === \"lazy\" && isLazyType(unit.type)) {\n const lazyType = unit.type;\n\n if (lazyType.status === \"resolved\" && lazyType.resolved !== undefined) {\n return reconcileChildFibers(\n unit,\n unit.alternate?.child,\n createElement(lazyType.resolved, unit.pendingProps as Record<string, unknown>),\n );\n }\n\n if (lazyType.status === \"rejected\") {\n throw lazyType.error;\n }\n\n if (lazyType.status === \"uninitialized\") {\n lazyType.status = \"pending\";\n lazyType.promise = lazyType\n .load()\n .then((module) => {\n lazyType.status = \"resolved\";\n lazyType.resolved = module.default;\n })\n .catch((error: unknown) => {\n lazyType.status = \"rejected\";\n lazyType.error = error;\n });\n }\n\n throw lazyType.promise;\n }\n\n if (unit.tag === \"suspense\" && unit.type === Suspense) {\n unit.memoizedState = { didSuspend: false } satisfies SuspenseFiberState;\n return reconcileChildFibers(\n unit,\n unit.alternate?.child,\n (unit.pendingProps as { children?: ReactCompatNode }).children,\n );\n }\n\n if (unit.tag === \"suspense-list\" && unit.type === SuspenseList) {\n return reconcileChildFibers(\n unit,\n unit.alternate?.child,\n (unit.pendingProps as { children?: ReactCompatNode }).children,\n );\n }\n\n if (unit.tag === \"error-boundary\" && unit.type === ERROR_BOUNDARY_TYPE) {\n return reconcileChildFibers(\n unit,\n unit.alternate?.child,\n (unit.pendingProps as { children?: ReactCompatNode }).children,\n );\n }\n\n return undefined;\n}\n\nfunction previewStrictModeNode(node: ReactCompatNode): void {\n if (\n node === null ||\n node === undefined ||\n typeof node === \"boolean\" ||\n typeof node === \"string\" ||\n typeof node === \"number\"\n ) {\n return;\n }\n\n if (Array.isArray(node)) {\n for (const child of node) {\n previewStrictModeNode(child);\n }\n return;\n }\n\n if (!isReactCompatElement(node)) {\n return;\n }\n\n if (isClassComponentType(node.type)) {\n const instance = new node.type(node.props as Record<string, unknown>);\n previewStrictModeNode(instance.render());\n return;\n }\n\n if (isForwardRefType(node.type)) {\n previewStrictModeNode(\n node.type.render(\n node.props as Record<string, unknown>,\n (node.props as { ref?: unknown }).ref ?? null,\n ),\n );\n return;\n }\n\n if (isMemoType(node.type)) {\n previewStrictModeNode(createElement(node.type.type, node.props));\n return;\n }\n\n if (typeof node.type === \"function\") {\n const component = node.type as (props: Record<string, unknown>) => ReactCompatNode;\n previewStrictModeNode(\n component(node.props as Record<string, unknown>),\n );\n return;\n }\n\n previewStrictModeNode(node.props.children as ReactCompatNode);\n}\n\nexport function completeWork(unit: Fiber): void {\n if (unit.tag === \"context-provider\") {\n popPushedContextProvider(unit);\n }\n\n if (unit.tag === \"host-component\") {\n const current = unit.alternate;\n\n unit.stateNode =\n current?.tag === \"host-component\" &&\n current.type === unit.type &&\n current.stateNode instanceof HTMLElement\n ? current.stateNode\n : document.createElement(String(unit.type));\n return;\n }\n\n if (unit.tag === \"host-text\") {\n const current = unit.alternate;\n\n unit.stateNode =\n current?.tag === \"host-text\" && current.stateNode instanceof Text\n ? current.stateNode\n : document.createTextNode(\"\");\n }\n}\n\nexport function cleanupUnfinishedWork(unit: Fiber | undefined): void {\n if (unit === undefined) {\n return;\n }\n\n let cursor: Fiber | undefined = unit;\n\n while (cursor !== undefined) {\n cleanupUnfinishedWork(cursor.child);\n popPushedContextProvider(cursor);\n cursor = cursor.sibling;\n }\n}\n\nfunction completeUnitOfWork(\n root: FiberRoot,\n completedWork: Fiber,\n): Fiber | undefined {\n let unit: Fiber | undefined = completedWork;\n\n while (unit !== undefined) {\n completeWork(unit);\n bubbleCompletedProperties(unit);\n\n if (unit.sibling !== undefined) {\n return unit.sibling;\n }\n\n if (unit.return === undefined) {\n unit.memoizedProps = unit.pendingProps;\n root.finishedWork = unit;\n return undefined;\n }\n\n unit.memoizedProps = unit.pendingProps;\n unit = unit.return;\n }\n\n return undefined;\n}\n\nfunction bubbleCompletedProperties(unit: Fiber): void {\n let subtreeFlags = unit.subtreeFlags;\n let childLanes = NoLanes;\n let child = unit.child;\n\n while (child !== undefined) {\n subtreeFlags |= child.subtreeFlags | child.flags;\n childLanes = mergeLanes(childLanes, mergeLanes(child.lanes, child.childLanes));\n child.return = unit;\n child = child.sibling;\n }\n\n unit.subtreeFlags = subtreeFlags;\n unit.childLanes = childLanes;\n}\n\nexport function canReconcileConcurrently(node: ReactCompatNode): boolean {\n if (\n node === null ||\n node === undefined ||\n typeof node === \"boolean\" ||\n typeof node === \"string\" ||\n typeof node === \"number\"\n ) {\n return true;\n }\n\n if (Array.isArray(node)) {\n return node.every(canReconcileConcurrently);\n }\n\n if (!isReactCompatElement(node)) {\n return false;\n }\n\n if (\n typeof node.type === \"string\" ||\n node.type === Fragment ||\n node.type === STRICT_MODE_TYPE\n ) {\n return canReconcileConcurrently(node.props.children as ReactCompatNode);\n }\n\n if (node.type === Suspense || node.type === SuspenseList) {\n return true;\n }\n\n if (node.type === ERROR_BOUNDARY_TYPE) {\n return canReconcileConcurrently(node.props.children as ReactCompatNode);\n }\n\n if (isReactCompatProvider(node.type)) {\n return canReconcileConcurrently(node.props.children as ReactCompatNode);\n }\n\n if (isReactCompatConsumer(node.type)) {\n return typeof node.props.children === \"function\";\n }\n\n if (isMemoType(node.type)) {\n return canReconcileElementTypeConcurrently(node.type.type);\n }\n\n return (\n isFunctionComponentType(node.type) ||\n isForwardRefType(node.type) ||\n isLazyType(node.type) ||\n isClassComponentType(node.type)\n );\n}\n\nfunction popPushedContextProvider(unit: Fiber): void {\n const state = unit.memoizedState as ContextProviderFiberState | undefined;\n\n if (state?.pushed === true) {\n popContextProvider(state.provider);\n state.pushed = false;\n }\n}\n\nfunction isFunctionComponentType(\n type: unknown,\n): type is (props: Record<string, unknown>) => ReactCompatNode {\n return typeof type === \"function\";\n}\n\nfunction isForwardRefType(\n type: unknown,\n): type is {\n $$typeof: typeof FORWARD_REF_TYPE;\n render: (props: Record<string, unknown>, ref: unknown) => ReactCompatNode;\n} {\n return (\n typeof type === \"object\" &&\n type !== null &&\n (type as { $$typeof?: unknown }).$$typeof === FORWARD_REF_TYPE\n );\n}\n\nfunction isMemoType(\n type: unknown,\n): type is MemoType<Record<string, unknown>> {\n return (\n typeof type === \"object\" &&\n type !== null &&\n (type as { $$typeof?: unknown }).$$typeof === MEMO_TYPE\n );\n}\n\nfunction isLazyType(\n type: unknown,\n): type is LazyType<Record<string, unknown>> {\n return (\n typeof type === \"object\" &&\n type !== null &&\n (type as { $$typeof?: unknown }).$$typeof === LAZY_TYPE\n );\n}\n\nfunction canReconcileElementTypeConcurrently(type: unknown): boolean {\n return (\n typeof type === \"string\" ||\n type === Fragment ||\n isFunctionComponentType(type) ||\n isForwardRefType(type) ||\n isLazyType(type) ||\n (isMemoType(type) && canReconcileElementTypeConcurrently(type.type))\n );\n}\n\nfunction captureThrownValue(\n root: FiberRoot,\n source: Fiber,\n thrownValue: unknown,\n): Fiber | undefined {\n let boundary = source.return;\n\n while (boundary !== undefined) {\n if (isThenable(thrownValue) && boundary.tag === \"suspense\") {\n return captureSuspenseBoundary(root, boundary);\n }\n\n if (!isThenable(thrownValue) && boundary.tag === \"error-boundary\") {\n return captureErrorBoundary(root, boundary, thrownValue);\n }\n\n if (!isThenable(thrownValue) && boundary.tag === \"class-component\") {\n const captured = captureClassErrorBoundary(root, boundary, thrownValue);\n\n if (captured !== undefined) {\n return captured;\n }\n }\n\n boundary = boundary.return;\n }\n\n throw thrownValue;\n}\n\nfunction beginClassComponent(\n unit: Fiber,\n type: ClassComponentType,\n): Fiber | undefined {\n const nextProps = unit.pendingProps as Record<string, unknown>;\n const currentInstance =\n unit.alternate?.stateNode instanceof type\n ? unit.alternate.stateNode\n : undefined;\n const instance = currentInstance ?? new type(nextProps);\n const nextState = instance.state ?? {};\n\n unit.stateNode = instance;\n\n if (\n unit.alternate !== undefined &&\n instance.shouldComponentUpdate?.(nextProps, nextState) === false\n ) {\n instance.props = nextProps;\n unit.child = unit.alternate.child;\n return undefined;\n }\n\n instance.props = nextProps;\n return reconcileChildFibers(unit, unit.alternate?.child, instance.render());\n}\n\nfunction captureClassErrorBoundary(\n root: FiberRoot,\n boundary: Fiber,\n thrownValue: unknown,\n): Fiber | undefined {\n if (!isClassComponentType(boundary.type)) {\n return undefined;\n }\n\n const instance = boundary.stateNode as ClassComponentInstance | undefined;\n\n if (instance === undefined || !isClassErrorBoundary(boundary.type, instance)) {\n return undefined;\n }\n\n cleanupUnfinishedWork(boundary.child);\n boundary.flags |= DidCapture;\n const error = thrownValue instanceof Error ? thrownValue : new Error(String(thrownValue));\n const derivedState = boundary.type.getDerivedStateFromError?.(error);\n\n if (derivedState !== undefined && derivedState !== null) {\n instance.state = {\n ...instance.state,\n ...derivedState,\n };\n }\n\n instance.componentDidCatch?.(error, { componentStack: \"\" });\n boundary.child = reconcileChildFibers(\n boundary,\n boundary.alternate?.child,\n instance.render(),\n );\n return boundary.child ?? completeUnitOfWork(root, boundary);\n}\n\nfunction isClassErrorBoundary(\n type: ClassComponentType,\n instance: ClassComponentInstance,\n): boolean {\n return (\n typeof type.getDerivedStateFromError === \"function\" ||\n typeof instance.componentDidCatch === \"function\"\n );\n}\n\nfunction captureSuspenseBoundary(\n root: FiberRoot,\n boundary: Fiber,\n): Fiber | undefined {\n cleanupUnfinishedWork(boundary.child);\n boundary.flags |= DidCapture;\n boundary.memoizedState = { didSuspend: true } satisfies SuspenseFiberState;\n boundary.child = reconcileChildFibers(\n boundary,\n boundary.alternate?.child,\n (boundary.pendingProps as { fallback?: ReactCompatNode }).fallback,\n );\n applySuspenseListRevealOrder(boundary);\n return boundary.child ?? completeUnitOfWork(root, boundary);\n}\n\nfunction captureErrorBoundary(\n root: FiberRoot,\n boundary: Fiber,\n thrownValue: unknown,\n): Fiber | undefined {\n cleanupUnfinishedWork(boundary.child);\n boundary.flags |= DidCapture;\n const error = thrownValue instanceof Error ? thrownValue : new Error(String(thrownValue));\n const props = boundary.pendingProps as {\n fallback?: unknown;\n onError?: unknown;\n };\n\n if (typeof props.onError === \"function\") {\n (props.onError as (error: Error) => void)(error);\n }\n\n const fallback =\n typeof props.fallback === \"function\"\n ? (props.fallback as (error: Error) => ReactCompatNode)(error)\n : null;\n boundary.child = reconcileChildFibers(boundary, boundary.alternate?.child, fallback);\n return boundary.child ?? completeUnitOfWork(root, boundary);\n}\n\nfunction applySuspenseListRevealOrder(boundary: Fiber): void {\n const parent = boundary.return;\n\n if (parent?.tag !== \"suspense-list\") {\n return;\n }\n\n const revealOrder = (parent.pendingProps as { revealOrder?: unknown }).revealOrder;\n\n if (revealOrder === \"forwards\") {\n boundary.sibling = undefined;\n } else if (revealOrder === \"backwards\") {\n parent.child = boundary;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"fiber-reconciler.js","sourceRoot":"","sources":["../src/fiber-reconciler.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ERROR_BOUNDARY_TYPE,\n FORWARD_REF_TYPE,\n Fragment,\n LAZY_TYPE,\n MEMO_TYPE,\n STRICT_MODE_TYPE,\n Suspense,\n SuspenseList,\n createElement,\n isReactCompatElement,\n type LazyType,\n type MemoType,\n type ReactCompatNode,\n} from \"./element.js\";\nimport {\n isReactCompatConsumer,\n isReactCompatProvider,\n popContextProvider,\n pushContextProvider,\n useContext,\n type ReactCompatProvider,\n} from \"./context.js\";\nimport { reconcileChildFibers } from \"./fiber-child.js\";\nimport { type Fiber, type FiberRoot } from \"./fiber.js\";\nimport { DidCapture } from \"./fiber-flags.js\";\nimport { mergeLanes, NoLanes } from \"./fiber-lanes.js\";\nimport { isThenable } from \"./thenable.js\";\nimport {\n applyDerivedStateFromProps,\n isClassComponentType,\n type ClassComponentInstance,\n type ClassComponentType,\n} from \"./class-component.js\";\nimport { areMemoPropsEqual } from \"./prop-comparison.js\";\n\ninterface ContextProviderFiberState {\n provider: ReactCompatProvider<unknown>;\n pushed: boolean;\n}\n\ninterface SuspenseFiberState {\n didSuspend: boolean;\n}\n\nexport function performUnitOfWork(\n root: FiberRoot,\n unit: Fiber,\n): Fiber | undefined {\n let next: Fiber | undefined;\n\n try {\n next = beginWork(unit);\n } catch (error) {\n return captureThrownValue(root, unit, error);\n }\n\n if (next !== undefined) {\n return next;\n }\n\n return completeUnitOfWork(root, unit);\n}\n\nexport function beginWork(unit: Fiber): Fiber | undefined {\n if (unit.tag === \"host-root\") {\n const children = (unit.pendingProps as { children?: ReactCompatNode })\n .children;\n return reconcileChildFibers(\n unit,\n unit.alternate?.child,\n children as ReactCompatNode,\n );\n }\n\n if (unit.tag === \"host-component\") {\n const children = (unit.pendingProps as { children?: ReactCompatNode })\n .children;\n return reconcileChildFibers(\n unit,\n unit.alternate?.child,\n children as ReactCompatNode,\n );\n }\n\n if (unit.tag === \"fragment\") {\n return reconcileChildFibers(\n unit,\n unit.alternate?.child,\n unit.pendingProps as ReactCompatNode,\n );\n }\n\n if (unit.tag === \"strict-mode\") {\n previewStrictModeNode(\n (unit.pendingProps as { children?: ReactCompatNode }).children,\n );\n return reconcileChildFibers(\n unit,\n unit.alternate?.child,\n (unit.pendingProps as { children?: ReactCompatNode }).children,\n );\n }\n\n if (unit.tag === \"function-component\" && isFunctionComponentType(unit.type)) {\n const children = unit.type(unit.pendingProps as Record<string, unknown>);\n return reconcileChildFibers(unit, unit.alternate?.child, children);\n }\n\n if (unit.tag === \"forward-ref\" && isForwardRefType(unit.type)) {\n const props = unit.pendingProps as Record<string, unknown>;\n const children = unit.type.render(props, props.ref ?? null);\n return reconcileChildFibers(unit, unit.alternate?.child, children);\n }\n\n if (unit.tag === \"memo\" && isMemoType(unit.type)) {\n const previousProps = unit.alternate?.memoizedProps as\n | Record<string, unknown>\n | undefined;\n const nextProps = unit.pendingProps as Record<string, unknown>;\n\n if (\n unit.alternate !== undefined &&\n previousProps !== undefined &&\n areMemoPropsEqual(unit.type, previousProps, nextProps)\n ) {\n unit.child = unit.alternate.child;\n return undefined;\n }\n\n return reconcileChildFibers(\n unit,\n unit.alternate?.child,\n createElement(unit.type.type, nextProps),\n );\n }\n\n if (unit.tag === \"context-provider\" && isReactCompatProvider(unit.type)) {\n const props = unit.pendingProps as {\n value: unknown;\n children?: ReactCompatNode;\n };\n pushContextProvider(unit.type, props.value);\n unit.memoizedState = {\n provider: unit.type,\n pushed: true,\n } satisfies ContextProviderFiberState;\n return reconcileChildFibers(unit, unit.alternate?.child, props.children);\n }\n\n if (unit.tag === \"context-consumer\" && isReactCompatConsumer(unit.type)) {\n const props = unit.pendingProps as {\n children?: unknown;\n };\n const render =\n typeof props.children === \"function\"\n ? (props.children as (value: unknown) => ReactCompatNode)\n : () => null;\n return reconcileChildFibers(\n unit,\n unit.alternate?.child,\n render(useContext(unit.type.context)),\n );\n }\n\n if (unit.tag === \"class-component\" && isClassComponentType(unit.type)) {\n return beginClassComponent(unit, unit.type);\n }\n\n if (unit.tag === \"lazy\" && isLazyType(unit.type)) {\n const lazyType = unit.type;\n\n if (lazyType.status === \"resolved\" && lazyType.resolved !== undefined) {\n return reconcileChildFibers(\n unit,\n unit.alternate?.child,\n createElement(lazyType.resolved, unit.pendingProps as Record<string, unknown>),\n );\n }\n\n if (lazyType.status === \"rejected\") {\n throw lazyType.error;\n }\n\n if (lazyType.status === \"uninitialized\") {\n lazyType.status = \"pending\";\n lazyType.promise = lazyType\n .load()\n .then((module) => {\n lazyType.status = \"resolved\";\n lazyType.resolved = module.default;\n })\n .catch((error: unknown) => {\n lazyType.status = \"rejected\";\n lazyType.error = error;\n });\n }\n\n throw lazyType.promise;\n }\n\n if (unit.tag === \"suspense\" && unit.type === Suspense) {\n unit.memoizedState = { didSuspend: false } satisfies SuspenseFiberState;\n return reconcileChildFibers(\n unit,\n unit.alternate?.child,\n (unit.pendingProps as { children?: ReactCompatNode }).children,\n );\n }\n\n if (unit.tag === \"suspense-list\" && unit.type === SuspenseList) {\n return reconcileChildFibers(\n unit,\n unit.alternate?.child,\n (unit.pendingProps as { children?: ReactCompatNode }).children,\n );\n }\n\n if (unit.tag === \"error-boundary\" && unit.type === ERROR_BOUNDARY_TYPE) {\n return reconcileChildFibers(\n unit,\n unit.alternate?.child,\n (unit.pendingProps as { children?: ReactCompatNode }).children,\n );\n }\n\n return undefined;\n}\n\nfunction previewStrictModeNode(node: ReactCompatNode): void {\n if (\n node === null ||\n node === undefined ||\n typeof node === \"boolean\" ||\n typeof node === \"string\" ||\n typeof node === \"number\"\n ) {\n return;\n }\n\n if (Array.isArray(node)) {\n for (const child of node) {\n previewStrictModeNode(child);\n }\n return;\n }\n\n if (!isReactCompatElement(node)) {\n return;\n }\n\n if (isClassComponentType(node.type)) {\n const instance = new node.type(node.props as Record<string, unknown>);\n previewStrictModeNode(instance.render());\n return;\n }\n\n if (isForwardRefType(node.type)) {\n previewStrictModeNode(\n node.type.render(\n node.props as Record<string, unknown>,\n (node.props as { ref?: unknown }).ref ?? null,\n ),\n );\n return;\n }\n\n if (isMemoType(node.type)) {\n previewStrictModeNode(createElement(node.type.type, node.props));\n return;\n }\n\n if (typeof node.type === \"function\") {\n const component = node.type as (props: Record<string, unknown>) => ReactCompatNode;\n previewStrictModeNode(\n component(node.props as Record<string, unknown>),\n );\n return;\n }\n\n previewStrictModeNode(node.props.children as ReactCompatNode);\n}\n\nexport function completeWork(unit: Fiber): void {\n if (unit.tag === \"context-provider\") {\n popPushedContextProvider(unit);\n }\n\n if (unit.tag === \"host-component\") {\n const current = unit.alternate;\n\n unit.stateNode =\n current?.tag === \"host-component\" &&\n current.type === unit.type &&\n current.stateNode instanceof HTMLElement\n ? current.stateNode\n : document.createElement(String(unit.type));\n return;\n }\n\n if (unit.tag === \"host-text\") {\n const current = unit.alternate;\n\n unit.stateNode =\n current?.tag === \"host-text\" && current.stateNode instanceof Text\n ? current.stateNode\n : document.createTextNode(\"\");\n }\n}\n\nexport function cleanupUnfinishedWork(unit: Fiber | undefined): void {\n if (unit === undefined) {\n return;\n }\n\n let cursor: Fiber | undefined = unit;\n\n while (cursor !== undefined) {\n cleanupUnfinishedWork(cursor.child);\n popPushedContextProvider(cursor);\n cursor = cursor.sibling;\n }\n}\n\nfunction completeUnitOfWork(\n root: FiberRoot,\n completedWork: Fiber,\n): Fiber | undefined {\n let unit: Fiber | undefined = completedWork;\n\n while (unit !== undefined) {\n completeWork(unit);\n bubbleCompletedProperties(unit);\n\n if (unit.sibling !== undefined) {\n return unit.sibling;\n }\n\n if (unit.return === undefined) {\n unit.memoizedProps = unit.pendingProps;\n root.finishedWork = unit;\n return undefined;\n }\n\n unit.memoizedProps = unit.pendingProps;\n unit = unit.return;\n }\n\n return undefined;\n}\n\nfunction bubbleCompletedProperties(unit: Fiber): void {\n let subtreeFlags = unit.subtreeFlags;\n let childLanes = NoLanes;\n let child = unit.child;\n\n while (child !== undefined) {\n subtreeFlags |= child.subtreeFlags | child.flags;\n childLanes = mergeLanes(childLanes, mergeLanes(child.lanes, child.childLanes));\n child.return = unit;\n child = child.sibling;\n }\n\n unit.subtreeFlags = subtreeFlags;\n unit.childLanes = childLanes;\n}\n\nexport function canReconcileConcurrently(node: ReactCompatNode): boolean {\n if (\n node === null ||\n node === undefined ||\n typeof node === \"boolean\" ||\n typeof node === \"string\" ||\n typeof node === \"number\"\n ) {\n return true;\n }\n\n if (Array.isArray(node)) {\n return node.every(canReconcileConcurrently);\n }\n\n if (!isReactCompatElement(node)) {\n return false;\n }\n\n if (\n typeof node.type === \"string\" ||\n node.type === Fragment ||\n node.type === STRICT_MODE_TYPE\n ) {\n return canReconcileConcurrently(node.props.children as ReactCompatNode);\n }\n\n if (node.type === Suspense || node.type === SuspenseList) {\n return true;\n }\n\n if (node.type === ERROR_BOUNDARY_TYPE) {\n return canReconcileConcurrently(node.props.children as ReactCompatNode);\n }\n\n if (isReactCompatProvider(node.type)) {\n return canReconcileConcurrently(node.props.children as ReactCompatNode);\n }\n\n if (isReactCompatConsumer(node.type)) {\n return typeof node.props.children === \"function\";\n }\n\n if (isMemoType(node.type)) {\n return canReconcileElementTypeConcurrently(node.type.type);\n }\n\n return (\n isFunctionComponentType(node.type) ||\n isForwardRefType(node.type) ||\n isLazyType(node.type) ||\n isClassComponentType(node.type)\n );\n}\n\nfunction popPushedContextProvider(unit: Fiber): void {\n const state = unit.memoizedState as ContextProviderFiberState | undefined;\n\n if (state?.pushed === true) {\n popContextProvider(state.provider);\n state.pushed = false;\n }\n}\n\nfunction isFunctionComponentType(\n type: unknown,\n): type is (props: Record<string, unknown>) => ReactCompatNode {\n return typeof type === \"function\";\n}\n\nfunction isForwardRefType(\n type: unknown,\n): type is {\n $$typeof: typeof FORWARD_REF_TYPE;\n render: (props: Record<string, unknown>, ref: unknown) => ReactCompatNode;\n} {\n return (\n typeof type === \"object\" &&\n type !== null &&\n (type as { $$typeof?: unknown }).$$typeof === FORWARD_REF_TYPE\n );\n}\n\nfunction isMemoType(\n type: unknown,\n): type is MemoType<Record<string, unknown>> {\n return (\n typeof type === \"object\" &&\n type !== null &&\n (type as { $$typeof?: unknown }).$$typeof === MEMO_TYPE\n );\n}\n\nfunction isLazyType(\n type: unknown,\n): type is LazyType<Record<string, unknown>> {\n return (\n typeof type === \"object\" &&\n type !== null &&\n (type as { $$typeof?: unknown }).$$typeof === LAZY_TYPE\n );\n}\n\nfunction canReconcileElementTypeConcurrently(type: unknown): boolean {\n return (\n typeof type === \"string\" ||\n type === Fragment ||\n isFunctionComponentType(type) ||\n isForwardRefType(type) ||\n isLazyType(type) ||\n (isMemoType(type) && canReconcileElementTypeConcurrently(type.type))\n );\n}\n\nfunction captureThrownValue(\n root: FiberRoot,\n source: Fiber,\n thrownValue: unknown,\n): Fiber | undefined {\n let boundary = source.return;\n\n while (boundary !== undefined) {\n if (isThenable(thrownValue) && boundary.tag === \"suspense\") {\n return captureSuspenseBoundary(root, boundary);\n }\n\n if (!isThenable(thrownValue) && boundary.tag === \"error-boundary\") {\n return captureErrorBoundary(root, boundary, thrownValue);\n }\n\n if (!isThenable(thrownValue) && boundary.tag === \"class-component\") {\n const captured = captureClassErrorBoundary(root, boundary, thrownValue);\n\n if (captured !== undefined) {\n return captured;\n }\n }\n\n boundary = boundary.return;\n }\n\n throw thrownValue;\n}\n\nfunction beginClassComponent(\n unit: Fiber,\n type: ClassComponentType,\n): Fiber | undefined {\n const nextProps = unit.pendingProps as Record<string, unknown>;\n const currentInstance =\n unit.alternate?.stateNode instanceof type\n ? unit.alternate.stateNode\n : undefined;\n const instance = currentInstance ?? new type(nextProps);\n const previousState = instance.state ?? {};\n applyDerivedStateFromProps(type, instance, nextProps, previousState);\n const nextState = instance.state ?? {};\n\n unit.stateNode = instance;\n\n if (\n unit.alternate !== undefined &&\n instance.shouldComponentUpdate?.(nextProps, nextState) === false\n ) {\n instance.props = nextProps;\n unit.child = unit.alternate.child;\n return undefined;\n }\n\n instance.props = nextProps;\n return reconcileChildFibers(unit, unit.alternate?.child, instance.render());\n}\n\nfunction captureClassErrorBoundary(\n root: FiberRoot,\n boundary: Fiber,\n thrownValue: unknown,\n): Fiber | undefined {\n if (!isClassComponentType(boundary.type)) {\n return undefined;\n }\n\n const instance = boundary.stateNode as ClassComponentInstance | undefined;\n\n if (instance === undefined || !isClassErrorBoundary(boundary.type, instance)) {\n return undefined;\n }\n\n cleanupUnfinishedWork(boundary.child);\n boundary.flags |= DidCapture;\n const error = thrownValue instanceof Error ? thrownValue : new Error(String(thrownValue));\n const derivedState = boundary.type.getDerivedStateFromError?.(error);\n\n if (derivedState !== undefined && derivedState !== null) {\n instance.state = {\n ...instance.state,\n ...derivedState,\n };\n }\n\n instance.componentDidCatch?.(error, { componentStack: \"\" });\n boundary.child = reconcileChildFibers(\n boundary,\n boundary.alternate?.child,\n instance.render(),\n );\n return boundary.child ?? completeUnitOfWork(root, boundary);\n}\n\nfunction isClassErrorBoundary(\n type: ClassComponentType,\n instance: ClassComponentInstance,\n): boolean {\n return (\n typeof type.getDerivedStateFromError === \"function\" ||\n typeof instance.componentDidCatch === \"function\"\n );\n}\n\nfunction captureSuspenseBoundary(\n root: FiberRoot,\n boundary: Fiber,\n): Fiber | undefined {\n cleanupUnfinishedWork(boundary.child);\n boundary.flags |= DidCapture;\n boundary.memoizedState = { didSuspend: true } satisfies SuspenseFiberState;\n boundary.child = reconcileChildFibers(\n boundary,\n boundary.alternate?.child,\n (boundary.pendingProps as { fallback?: ReactCompatNode }).fallback,\n );\n applySuspenseListRevealOrder(boundary);\n return boundary.child ?? completeUnitOfWork(root, boundary);\n}\n\nfunction captureErrorBoundary(\n root: FiberRoot,\n boundary: Fiber,\n thrownValue: unknown,\n): Fiber | undefined {\n cleanupUnfinishedWork(boundary.child);\n boundary.flags |= DidCapture;\n const error = thrownValue instanceof Error ? thrownValue : new Error(String(thrownValue));\n const props = boundary.pendingProps as {\n fallback?: unknown;\n onError?: unknown;\n };\n\n if (typeof props.onError === \"function\") {\n (props.onError as (error: Error) => void)(error);\n }\n\n const fallback =\n typeof props.fallback === \"function\"\n ? (props.fallback as (error: Error) => ReactCompatNode)(error)\n : null;\n boundary.child = reconcileChildFibers(boundary, boundary.alternate?.child, fallback);\n return boundary.child ?? completeUnitOfWork(root, boundary);\n}\n\nfunction applySuspenseListRevealOrder(boundary: Fiber): void {\n const parent = boundary.return;\n\n if (parent?.tag !== \"suspense-list\") {\n return;\n }\n\n const revealOrder = (parent.pendingProps as { revealOrder?: unknown }).revealOrder;\n\n if (revealOrder === \"forwards\") {\n boundary.sibling = undefined;\n } else if (revealOrder === \"backwards\") {\n parent.child = boundary;\n }\n}\n"]}
|
package/dist/hooks.d.ts
CHANGED
|
@@ -202,7 +202,9 @@ export declare function cacheSignal(): AbortSignal | null;
|
|
|
202
202
|
export declare function captureOwnerStack(): string | null;
|
|
203
203
|
export declare function unstable_useCacheRefresh(): () => void;
|
|
204
204
|
export declare function hasStableExternalStores(runtime: RootRuntime): boolean;
|
|
205
|
-
export declare function renderToString<TProps>(component: (props: TProps) => ReactCompatNode
|
|
205
|
+
export declare function renderToString<TProps>(component: ((props: TProps) => ReactCompatNode) | (new (props: TProps) => {
|
|
206
|
+
render(): ReactCompatNode;
|
|
207
|
+
}), props?: TProps, options?: RootRuntimeOptions): string;
|
|
206
208
|
export type TransitionScope = () => void;
|
|
207
209
|
export type StartTransition = (scope: TransitionScope) => void;
|
|
208
210
|
export declare function startTransition(scope: TransitionScope): void;
|
package/dist/hooks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks.js
CHANGED
|
@@ -337,13 +337,13 @@ export function useId() {
|
|
|
337
337
|
return idRef.current;
|
|
338
338
|
}
|
|
339
339
|
export function useImperativeHandle(ref, create, deps) {
|
|
340
|
-
const handle = runWithoutDevToolsHookTracking(() => useMemo(create, deps));
|
|
341
340
|
runWithoutDevToolsHookTracking(() => useInsertionEffect(() => {
|
|
341
|
+
const handle = create();
|
|
342
342
|
assignRef(ref, handle);
|
|
343
343
|
return () => {
|
|
344
344
|
assignRef(ref, null);
|
|
345
345
|
};
|
|
346
|
-
}, [ref,
|
|
346
|
+
}, deps === undefined ? undefined : [ref, ...deps]));
|
|
347
347
|
recordDevToolsHook("useImperativeHandle", deps === undefined
|
|
348
348
|
? { kind: "imperative-handle" }
|
|
349
349
|
: { kind: "imperative-handle", deps });
|
|
@@ -624,7 +624,13 @@ export function renderToString(component, props, options = {}) {
|
|
|
624
624
|
});
|
|
625
625
|
return runWithCacheScope(createCacheScope(), () => {
|
|
626
626
|
try {
|
|
627
|
-
const rendered = renderWithRootRuntime(runtime, "0", () =>
|
|
627
|
+
const rendered = renderWithRootRuntime(runtime, "0", () => {
|
|
628
|
+
if (isClassComponentType(component)) {
|
|
629
|
+
const instance = new component(props);
|
|
630
|
+
return instance.render();
|
|
631
|
+
}
|
|
632
|
+
return component(props);
|
|
633
|
+
});
|
|
628
634
|
return typeof rendered === "string"
|
|
629
635
|
? rendered
|
|
630
636
|
: renderNodeToString(rendered, runtime, "0");
|