main
js 286 lines 14.1 KB
Raw
1 /**
2 * Copyright (c) Meta Platforms, Inc. and affiliates.
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 * @flow
8 */
9
10 // This is a host config that's used for the `react-reconciler` package on npm.
11 // It is only used by third-party renderers.
12 //
13 // Its API lets you pass the host config as an argument.
14 // However, inside the `react-reconciler` we treat host config as a module.
15 // This file is a shim between two worlds.
16 //
17 // It works because the `react-reconciler` bundle is wrapped in something like:
18 //
19 // module.exports = function ($$$config) {
20 // /* reconciler code */
21 // }
22 //
23 // So `$$$config` looks like a global variable, but it's
24 // really an argument to a top-level wrapping function.
25
26 declare const $$$config: any;
27 export opaque type Type = mixed;
28 export opaque type Props = mixed;
29 export opaque type Container = mixed;
30 export opaque type Instance = mixed;
31 export opaque type TextInstance = mixed;
32 export opaque type ActivityInstance = mixed;
33 export opaque type SuspenseInstance = mixed;
34 export opaque type HydratableInstance = mixed;
35 export opaque type PublicInstance = mixed;
36 export opaque type HostContext = mixed;
37 export opaque type UpdatePayload = mixed;
38 export opaque type ChildSet = mixed;
39 export opaque type TimeoutHandle = mixed;
40 export opaque type NoTimeout = mixed;
41 export opaque type RendererInspectionConfig = mixed;
42 export opaque type TransitionStatus = mixed;
43 export opaque type FormInstance = mixed;
44 export opaque type SuspendedState = mixed;
45 export type RunningViewTransition = mixed;
46 export type ViewTransitionInstance = null | {name: string, ...};
47 export opaque type InstanceMeasurement = mixed;
48 export type EventResponder = any;
49 export type GestureTimeline = any;
50 export type FragmentInstanceType = null;
51
52 export const rendererVersion = $$$config.rendererVersion;
53 export const rendererPackageName = $$$config.rendererPackageName;
54 export const extraDevToolsConfig = $$$config.extraDevToolsConfig;
55
56 export const getPublicInstance = $$$config.getPublicInstance;
57 export const getRootHostContext = $$$config.getRootHostContext;
58 export const getChildHostContext = $$$config.getChildHostContext;
59 export const prepareForCommit = $$$config.prepareForCommit;
60 export const resetAfterCommit = $$$config.resetAfterCommit;
61 export const createInstance = $$$config.createInstance;
62 export const cloneMutableInstance = $$$config.cloneMutableInstance;
63 export const appendInitialChild = $$$config.appendInitialChild;
64 export const finalizeInitialChildren = $$$config.finalizeInitialChildren;
65 export const shouldSetTextContent = $$$config.shouldSetTextContent;
66 export const createTextInstance = $$$config.createTextInstance;
67 export const cloneMutableTextInstance = $$$config.cloneMutableTextInstance;
68 export const scheduleTimeout = $$$config.scheduleTimeout;
69 export const cancelTimeout = $$$config.cancelTimeout;
70 export const noTimeout = $$$config.noTimeout;
71 export const isPrimaryRenderer = $$$config.isPrimaryRenderer;
72 export const warnsIfNotActing = $$$config.warnsIfNotActing;
73 export const supportsMutation = $$$config.supportsMutation;
74 export const supportsPersistence = $$$config.supportsPersistence;
75 export const supportsHydration = $$$config.supportsHydration;
76 export const getInstanceFromNode = $$$config.getInstanceFromNode;
77 export const beforeActiveInstanceBlur = $$$config.beforeActiveInstanceBlur;
78 export const afterActiveInstanceBlur = $$$config.afterActiveInstanceBlur;
79 export const preparePortalMount = $$$config.preparePortalMount;
80 export const prepareScopeUpdate = $$$config.prepareScopeUpdate;
81 export const getInstanceFromScope = $$$config.getInstanceFromScope;
82 export const setCurrentUpdatePriority = $$$config.setCurrentUpdatePriority;
83 export const getCurrentUpdatePriority = $$$config.getCurrentUpdatePriority;
84 export const resolveUpdatePriority = $$$config.resolveUpdatePriority;
85 export const trackSchedulerEvent = $$$config.trackSchedulerEvent;
86 export const resolveEventType = $$$config.resolveEventType;
87 export const resolveEventTimeStamp = $$$config.resolveEventTimeStamp;
88 export const shouldAttemptEagerTransition =
89 $$$config.shouldAttemptEagerTransition;
90 export const detachDeletedInstance = $$$config.detachDeletedInstance;
91 export const requestPostPaintCallback = $$$config.requestPostPaintCallback;
92 export const maySuspendCommit = $$$config.maySuspendCommit;
93 export const maySuspendCommitOnUpdate = $$$config.maySuspendCommitOnUpdate;
94 export const maySuspendCommitInSyncRender =
95 $$$config.maySuspendCommitInSyncRender;
96 export const preloadInstance = $$$config.preloadInstance;
97 export const startSuspendingCommit = $$$config.startSuspendingCommit;
98 export const suspendInstance = $$$config.suspendInstance;
99 export const suspendOnActiveViewTransition =
100 $$$config.suspendOnActiveViewTransition;
101 export const waitForCommitToBeReady = $$$config.waitForCommitToBeReady;
102 export const getSuspendedCommitReason = $$$config.getSuspendedCommitReason;
103 export const NotPendingTransition = $$$config.NotPendingTransition;
104 export const HostTransitionContext = $$$config.HostTransitionContext;
105 export const resetFormInstance = $$$config.resetFormInstance;
106 export const bindToConsole = $$$config.bindToConsole;
107
108 // -------------------
109 // Microtasks
110 // (optional)
111 // -------------------
112 export const supportsMicrotasks = $$$config.supportsMicrotasks;
113 export const scheduleMicrotask = $$$config.scheduleMicrotask;
114
115 // -------------------
116 // Test selectors
117 // (optional)
118 // -------------------
119 export const supportsTestSelectors = $$$config.supportsTestSelectors;
120 export const findFiberRoot = $$$config.findFiberRoot;
121 export const getBoundingRect = $$$config.getBoundingRect;
122 export const getTextContent = $$$config.getTextContent;
123 export const isHiddenSubtree = $$$config.isHiddenSubtree;
124 export const matchAccessibilityRole = $$$config.matchAccessibilityRole;
125 export const setFocusIfFocusable = $$$config.setFocusIfFocusable;
126 export const setupIntersectionObserver = $$$config.setupIntersectionObserver;
127
128 // -------------------
129 // Mutation
130 // (optional)
131 // -------------------
132 export const appendChild = $$$config.appendChild;
133 export const appendChildToContainer = $$$config.appendChildToContainer;
134 export const commitTextUpdate = $$$config.commitTextUpdate;
135 export const commitMount = $$$config.commitMount;
136 export const commitUpdate = $$$config.commitUpdate;
137 export const insertBefore = $$$config.insertBefore;
138 export const insertInContainerBefore = $$$config.insertInContainerBefore;
139 export const removeChild = $$$config.removeChild;
140 export const removeChildFromContainer = $$$config.removeChildFromContainer;
141 export const resetTextContent = $$$config.resetTextContent;
142 export const hideInstance = $$$config.hideInstance;
143 export const hideTextInstance = $$$config.hideTextInstance;
144 export const unhideInstance = $$$config.unhideInstance;
145 export const unhideTextInstance = $$$config.unhideTextInstance;
146 export const applyViewTransitionName = $$$config.applyViewTransitionName;
147 export const restoreViewTransitionName = $$$config.restoreViewTransitionName;
148 export const cancelViewTransitionName = $$$config.cancelViewTransitionName;
149 export const cancelRootViewTransitionName =
150 $$$config.cancelRootViewTransitionName;
151 export const restoreRootViewTransitionName =
152 $$$config.restoreRootViewTransitionName;
153 export const cloneRootViewTransitionContainer =
154 $$$config.cloneRootViewTransitionContainer;
155 export const removeRootViewTransitionClone =
156 $$$config.removeRootViewTransitionClone;
157 export const measureInstance = $$$config.measureInstance;
158 export const measureClonedInstance = $$$config.measureClonedInstance;
159 export const wasInstanceInViewport = $$$config.wasInstanceInViewport;
160 export const hasInstanceChanged = $$$config.hasInstanceChanged;
161 export const hasInstanceAffectedParent = $$$config.hasInstanceAffectedParent;
162 export const startViewTransition = $$$config.startViewTransition;
163 export const startGestureTransition = $$$config.startGestureTransition;
164 export const stopViewTransition = $$$config.stopViewTransition;
165 export const addViewTransitionFinishedListener =
166 $$$config.addViewTransitionFinishedListener;
167 export const getCurrentGestureOffset = $$$config.getCurrentGestureOffset;
168 export const createViewTransitionInstance =
169 $$$config.createViewTransitionInstance;
170 export const clearContainer = $$$config.clearContainer;
171 export const createFragmentInstance = $$$config.createFragmentInstance;
172 export const updateFragmentInstanceFiber =
173 $$$config.updateFragmentInstanceFiber;
174 export const commitNewChildToFragmentInstance =
175 $$$config.commitNewChildToFragmentInstance;
176 export const deleteChildFromFragmentInstance =
177 $$$config.deleteChildFromFragmentInstance;
178
179 // -------------------
180 // Persistence
181 // (optional)
182 // -------------------
183 export const cloneInstance = $$$config.cloneInstance;
184 export const createContainerChildSet = $$$config.createContainerChildSet;
185 export const appendChildToContainerChildSet =
186 $$$config.appendChildToContainerChildSet;
187 export const finalizeContainerChildren = $$$config.finalizeContainerChildren;
188 export const replaceContainerChildren = $$$config.replaceContainerChildren;
189 export const cloneHiddenInstance = $$$config.cloneHiddenInstance;
190 export const cloneHiddenTextInstance = $$$config.cloneHiddenTextInstance;
191
192 // -------------------
193 // Hydration
194 // (optional)
195 // -------------------
196 export const isSuspenseInstancePending = $$$config.isSuspenseInstancePending;
197 export const isSuspenseInstanceFallback = $$$config.isSuspenseInstanceFallback;
198 export const getSuspenseInstanceFallbackErrorDetails =
199 $$$config.getSuspenseInstanceFallbackErrorDetails;
200 export const registerSuspenseInstanceRetry =
201 $$$config.registerSuspenseInstanceRetry;
202 export const canHydrateFormStateMarker = $$$config.canHydrateFormStateMarker;
203 export const isFormStateMarkerMatching = $$$config.isFormStateMarkerMatching;
204 export const getNextHydratableSibling = $$$config.getNextHydratableSibling;
205 export const getNextHydratableSiblingAfterSingleton =
206 $$$config.getNextHydratableSiblingAfterSingleton;
207 export const getFirstHydratableChild = $$$config.getFirstHydratableChild;
208 export const getFirstHydratableChildWithinContainer =
209 $$$config.getFirstHydratableChildWithinContainer;
210 export const getFirstHydratableChildWithinActivityInstance =
211 $$$config.getFirstHydratableChildWithinActivityInstance;
212 export const getFirstHydratableChildWithinSuspenseInstance =
213 $$$config.getFirstHydratableChildWithinSuspenseInstance;
214 export const getFirstHydratableChildWithinSingleton =
215 $$$config.getFirstHydratableChildWithinSingleton;
216 export const canHydrateInstance = $$$config.canHydrateInstance;
217 export const canHydrateTextInstance = $$$config.canHydrateTextInstance;
218 export const canHydrateActivityInstance = $$$config.canHydrateActivityInstance;
219 export const canHydrateSuspenseInstance = $$$config.canHydrateSuspenseInstance;
220 export const hydrateInstance = $$$config.hydrateInstance;
221 export const hydrateTextInstance = $$$config.hydrateTextInstance;
222 export const hydrateActivityInstance = $$$config.hydrateActivityInstance;
223 export const hydrateSuspenseInstance = $$$config.hydrateSuspenseInstance;
224 export const getNextHydratableInstanceAfterActivityInstance =
225 $$$config.getNextHydratableInstanceAfterActivityInstance;
226 export const getNextHydratableInstanceAfterSuspenseInstance =
227 $$$config.getNextHydratableInstanceAfterSuspenseInstance;
228 export const commitHydratedInstance = $$$config.commitHydratedInstance;
229 export const commitHydratedContainer = $$$config.commitHydratedContainer;
230 export const commitHydratedActivityInstance =
231 $$$config.commitHydratedActivityInstance;
232 export const commitHydratedSuspenseInstance =
233 $$$config.commitHydratedSuspenseInstance;
234 export const finalizeHydratedChildren = $$$config.finalizeHydratedChildren;
235 export const flushHydrationEvents = $$$config.flushHydrationEvents;
236 export const clearActivityBoundary = $$$config.clearActivityBoundary;
237 export const clearSuspenseBoundary = $$$config.clearSuspenseBoundary;
238 export const clearActivityBoundaryFromContainer =
239 $$$config.clearActivityBoundaryFromContainer;
240 export const clearSuspenseBoundaryFromContainer =
241 $$$config.clearSuspenseBoundaryFromContainer;
242 export const hideDehydratedBoundary = $$$config.hideDehydratedBoundary;
243 export const unhideDehydratedBoundary = $$$config.unhideDehydratedBoundary;
244 export const shouldDeleteUnhydratedTailInstances =
245 $$$config.shouldDeleteUnhydratedTailInstances;
246 export const diffHydratedPropsForDevWarnings =
247 $$$config.diffHydratedPropsForDevWarnings;
248 export const diffHydratedTextForDevWarnings =
249 $$$config.diffHydratedTextForDevWarnings;
250 export const describeHydratableInstanceForDevWarnings =
251 $$$config.describeHydratableInstanceForDevWarnings;
252 export const validateHydratableInstance = $$$config.validateHydratableInstance;
253 export const validateHydratableTextInstance =
254 $$$config.validateHydratableTextInstance;
255
256 // -------------------
257 // Resources
258 // (optional)
259 // -------------------
260 export type HoistableRoot = mixed;
261 export type Resource = mixed;
262 export const supportsResources = $$$config.supportsResources;
263 export const isHostHoistableType = $$$config.isHostHoistableType;
264 export const getHoistableRoot = $$$config.getHoistableRoot;
265 export const getResource = $$$config.getResource;
266 export const acquireResource = $$$config.acquireResource;
267 export const releaseResource = $$$config.releaseResource;
268 export const hydrateHoistable = $$$config.hydrateHoistable;
269 export const mountHoistable = $$$config.mountHoistable;
270 export const unmountHoistable = $$$config.unmountHoistable;
271 export const createHoistableInstance = $$$config.createHoistableInstance;
272 export const prepareToCommitHoistables = $$$config.prepareToCommitHoistables;
273 export const mayResourceSuspendCommit = $$$config.mayResourceSuspendCommit;
274 export const preloadResource = $$$config.preloadResource;
275 export const suspendResource = $$$config.suspendResource;
276
277 // -------------------
278 // Singletons
279 // (optional)
280 // -------------------
281 export const supportsSingletons = $$$config.supportsSingletons;
282 export const resolveSingletonInstance = $$$config.resolveSingletonInstance;
283 export const acquireSingletonInstance = $$$config.acquireSingletonInstance;
284 export const releaseSingletonInstance = $$$config.releaseSingletonInstance;
285 export const isHostSingletonType = $$$config.isHostSingletonType;
286 export const isSingletonScope = $$$config.isSingletonScope;