@samitouri / QOS-React-2 / commits / 346c7d4c43

straightford explicit types (#25253)

Jan Kassens committed Sep 13, 2022 at 17:57 UTC 346c7d4c43a0717302d446da9e7423a8e28d8996
52 files changed +175 -139
packages/react-debug-tools/src/ReactDebugHooks.js
+1 -1
@@ -783,7 +783,7 @@ export function inspectHooksOfFiber(
783 fiber: Fiber,
784 currentDispatcher: ?CurrentDispatcherRef,
785 includeHooksSource?: boolean = false,
786 -) {
786 +): HooksTree {
787 // DevTools will pass the current renderer's injected dispatcher.
788 // Other apps might compile debug hooks as part of their app though.
789 if (currentDispatcher == null) {
packages/react-dom/src/client/ReactDOMHostConfig.js
+5 -3
@@ -680,7 +680,7 @@ export function clearContainer(container: Container): void {
680
681 export const supportsHydration = true;
682
683 -export function isHydratableResource(type: string, props: Props) {
683 +export function isHydratableResource(type: string, props: Props): boolean {
684 return (
685 type === 'link' &&
686 typeof (props: any).precedence === 'string' &&
@@ -726,11 +726,13 @@ export function canHydrateSuspenseInstance(
726 return ((instance: any): SuspenseInstance);
727 }
728
729 -export function isSuspenseInstancePending(instance: SuspenseInstance) {
729 +export function isSuspenseInstancePending(instance: SuspenseInstance): boolean {
730 return instance.data === SUSPENSE_PENDING_START_DATA;
731 }
732
733 -export function isSuspenseInstanceFallback(instance: SuspenseInstance) {
733 +export function isSuspenseInstanceFallback(
734 + instance: SuspenseInstance,
735 +): boolean {
736 return instance.data === SUSPENSE_FALLBACK_START_DATA;
737 }
738
packages/react-dom/src/client/inputValueTracking.js
+1 -1
@@ -123,7 +123,7 @@ export function track(node: ElementWithValueTracker) {
123 node._valueTracker = trackValueOnNode(node);
124 }
125
126 -export function updateValueIfChanged(node: ElementWithValueTracker) {
126 +export function updateValueIfChanged(node: ElementWithValueTracker): boolean {
127 if (!node) {
128 return false;
129 }
packages/react-dom/src/events/checkPassiveEvents.js
+1 -1
@@ -9,7 +9,7 @@
9
10 import {canUseDOM} from 'shared/ExecutionEnvironment';
11
12 -export let passiveBrowserEventsSupported = false;
12 +export let passiveBrowserEventsSupported: boolean = false;
13
14 // Check if browser support events with passive listeners
15 // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support
packages/react-dom/src/shared/DOMProperty.js
+2 -2
@@ -63,10 +63,10 @@ export type PropertyInfo = {
63 export const ATTRIBUTE_NAME_START_CHAR =
64 ':A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD';
65 /* eslint-enable max-len */
66 -export const ATTRIBUTE_NAME_CHAR =
66 +export const ATTRIBUTE_NAME_CHAR: string =
67 ATTRIBUTE_NAME_START_CHAR + '\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040';
68
69 -export const VALID_ATTRIBUTE_NAME_REGEX = new RegExp(
69 +export const VALID_ATTRIBUTE_NAME_REGEX: RegExp = new RegExp(
70 '^[' + ATTRIBUTE_NAME_START_CHAR + '][' + ATTRIBUTE_NAME_CHAR + ']*$',
71 );
72
packages/react-dom/src/shared/isCustomComponent.js
+1 -1
@@ -7,7 +7,7 @@
7 * @flow
8 */
9
10 -function isCustomComponent(tagName: string, props: Object) {
10 +function isCustomComponent(tagName: string, props: Object): boolean {
11 if (tagName.indexOf('-') === -1) {
12 return typeof props.is === 'string';
13 }
packages/react-is/src/ReactIs.js
+14 -14
@@ -82,7 +82,7 @@ let hasWarnedAboutDeprecatedIsAsyncMode = false;
82 let hasWarnedAboutDeprecatedIsConcurrentMode = false;
83
84 // AsyncMode should be deprecated
85 -export function isAsyncMode(object: any) {
85 +export function isAsyncMode(object: any): boolean {
86 if (__DEV__) {
87 if (!hasWarnedAboutDeprecatedIsAsyncMode) {
88 hasWarnedAboutDeprecatedIsAsyncMode = true;
@@ -95,7 +95,7 @@ export function isAsyncMode(object: any) {
95 }
96 return false;
97 }
98 -export function isConcurrentMode(object: any) {
98 +export function isConcurrentMode(object: any): boolean {
99 if (__DEV__) {
100 if (!hasWarnedAboutDeprecatedIsConcurrentMode) {
101 hasWarnedAboutDeprecatedIsConcurrentMode = true;
@@ -108,43 +108,43 @@ export function isConcurrentMode(object: any) {
108 }
109 return false;
110 }
111 -export function isContextConsumer(object: any) {
111 +export function isContextConsumer(object: any): boolean {
112 return typeOf(object) === REACT_CONTEXT_TYPE;
113 }
114 -export function isContextProvider(object: any) {
114 +export function isContextProvider(object: any): boolean {
115 return typeOf(object) === REACT_PROVIDER_TYPE;
116 }
117 -export function isElement(object: any) {
117 +export function isElement(object: any): boolean {
118 return (
119 typeof object === 'object' &&
120 object !== null &&
121 object.$$typeof === REACT_ELEMENT_TYPE
122 );
123 }
124 -export function isForwardRef(object: any) {
124 +export function isForwardRef(object: any): boolean {
125 return typeOf(object) === REACT_FORWARD_REF_TYPE;
126 }
127 -export function isFragment(object: any) {
127 +export function isFragment(object: any): boolean {
128 return typeOf(object) === REACT_FRAGMENT_TYPE;
129 }
130 -export function isLazy(object: any) {
130 +export function isLazy(object: any): boolean {
131 return typeOf(object) === REACT_LAZY_TYPE;
132 }
133 -export function isMemo(object: any) {
133 +export function isMemo(object: any): boolean {
134 return typeOf(object) === REACT_MEMO_TYPE;
135 }
136 -export function isPortal(object: any) {
136 +export function isPortal(object: any): boolean {
137 return typeOf(object) === REACT_PORTAL_TYPE;
138 }
139 -export function isProfiler(object: any) {
139 +export function isProfiler(object: any): boolean {
140 return typeOf(object) === REACT_PROFILER_TYPE;
141 }
142 -export function isStrictMode(object: any) {
142 +export function isStrictMode(object: any): boolean {
143 return typeOf(object) === REACT_STRICT_MODE_TYPE;
144 }
145 -export function isSuspense(object: any) {
145 +export function isSuspense(object: any): boolean {
146 return typeOf(object) === REACT_SUSPENSE_TYPE;
147 }
148 -export function isSuspenseList(object: any) {
148 +export function isSuspenseList(object: any): boolean {
149 return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;
150 }
packages/react-reconciler/src/ReactCurrentFiber.js
+1 -1
@@ -73,7 +73,7 @@ export function setIsRendering(rendering: boolean) {
73 }
74 }
75
76 -export function getIsRendering() {
76 +export function getIsRendering(): void | boolean {
77 if (__DEV__) {
78 return isRendering;
79 }
packages/react-reconciler/src/ReactEventPriorities.js
+1 -1
@@ -58,7 +58,7 @@ export function getCurrentUpdatePriority(): EventPriority {
58 : (getCurrentUpdatePriority_old(): any);
59 }
60
61 -export function setCurrentUpdatePriority(priority: EventPriority) {
61 +export function setCurrentUpdatePriority(priority: EventPriority): void {
62 return enableNewReconciler
63 ? setCurrentUpdatePriority_new((priority: any))
64 : setCurrentUpdatePriority_old((priority: any));
packages/react-reconciler/src/ReactFiber.new.js
+5 -2
@@ -225,7 +225,7 @@ function shouldConstruct(Component: Function) {
225 return !!(prototype && prototype.isReactComponent);
226 }
227
228 -export function isSimpleFunctionComponent(type: any) {
228 +export function isSimpleFunctionComponent(type: any): boolean {
229 return (
230 typeof type === 'function' &&
231 !shouldConstruct(type) &&
@@ -355,7 +355,10 @@ export function createWorkInProgress(current: Fiber, pendingProps: any): Fiber {
355 }
356
357 // Used to reuse a Fiber for a second pass.
358 -export function resetWorkInProgress(workInProgress: Fiber, renderLanes: Lanes) {
358 +export function resetWorkInProgress(
359 + workInProgress: Fiber,
360 + renderLanes: Lanes,
361 +): Fiber {
362 // This resets the Fiber to what createFiber or createWorkInProgress would
363 // have set the values to before during the first pass. Ideally this wouldn't
364 // be necessary but unfortunately many code paths reads from the workInProgress
packages/react-reconciler/src/ReactFiber.old.js
+5 -2
@@ -225,7 +225,7 @@ function shouldConstruct(Component: Function) {
225 return !!(prototype && prototype.isReactComponent);
226 }
227
228 -export function isSimpleFunctionComponent(type: any) {
228 +export function isSimpleFunctionComponent(type: any): boolean {
229 return (
230 typeof type === 'function' &&
231 !shouldConstruct(type) &&
@@ -355,7 +355,10 @@ export function createWorkInProgress(current: Fiber, pendingProps: any): Fiber {
355 }
356
357 // Used to reuse a Fiber for a second pass.
358 -export function resetWorkInProgress(workInProgress: Fiber, renderLanes: Lanes) {
358 +export function resetWorkInProgress(
359 + workInProgress: Fiber,
360 + renderLanes: Lanes,
361 +): Fiber {
362 // This resets the Fiber to what createFiber or createWorkInProgress would
363 // have set the values to before during the first pass. Ideally this wouldn't
364 // be necessary but unfortunately many code paths reads from the workInProgress
packages/react-reconciler/src/ReactFiberAct.new.js
+1 -1
@@ -15,7 +15,7 @@ import {warnsIfNotActing} from './ReactFiberHostConfig';
15
16 const {ReactCurrentActQueue} = ReactSharedInternals;
17
18 -export function isLegacyActEnvironment(fiber: Fiber) {
18 +export function isLegacyActEnvironment(fiber: Fiber): boolean {
19 if (__DEV__) {
20 // Legacy mode. We preserve the behavior of React 17's act. It assumes an
21 // act environment whenever `jest` is defined, but you can still turn off
packages/react-reconciler/src/ReactFiberAct.old.js
+1 -1
@@ -15,7 +15,7 @@ import {warnsIfNotActing} from './ReactFiberHostConfig';
15
16 const {ReactCurrentActQueue} = ReactSharedInternals;
17
18 -export function isLegacyActEnvironment(fiber: Fiber) {
18 +export function isLegacyActEnvironment(fiber: Fiber): boolean {
19 if (__DEV__) {
20 // Legacy mode. We preserve the behavior of React 17's act. It assumes an
21 // act environment whenever `jest` is defined, but you can still turn off
packages/react-reconciler/src/ReactFiberBeginWork.new.js
+2 -2
@@ -281,7 +281,7 @@ let didWarnAboutModulePatternComponent;
281 let didWarnAboutContextTypeOnFunctionComponent;
282 let didWarnAboutGetDerivedStateOnFunctionComponent;
283 let didWarnAboutFunctionRefs;
284 -export let didWarnAboutReassigningProps;
284 +export let didWarnAboutReassigningProps: boolean;
285 let didWarnAboutRevealOrder;
286 let didWarnAboutTailOptions;
287 let didWarnAboutDefaultPropsOnFunctionComponent;
@@ -3479,7 +3479,7 @@ export function markWorkInProgressReceivedUpdate() {
3479 didReceiveUpdate = true;
3480 }
3481
3482 -export function checkIfWorkInProgressReceivedUpdate() {
3482 +export function checkIfWorkInProgressReceivedUpdate(): boolean {
3483 return didReceiveUpdate;
3484 }
3485
packages/react-reconciler/src/ReactFiberBeginWork.old.js
+2 -2
@@ -281,7 +281,7 @@ let didWarnAboutModulePatternComponent;
281 let didWarnAboutContextTypeOnFunctionComponent;
282 let didWarnAboutGetDerivedStateOnFunctionComponent;
283 let didWarnAboutFunctionRefs;
284 -export let didWarnAboutReassigningProps;
284 +export let didWarnAboutReassigningProps: boolean;
285 let didWarnAboutRevealOrder;
286 let didWarnAboutTailOptions;
287 let didWarnAboutDefaultPropsOnFunctionComponent;
@@ -3479,7 +3479,7 @@ export function markWorkInProgressReceivedUpdate() {
3479 didReceiveUpdate = true;
3480 }
3481
3482 -export function checkIfWorkInProgressReceivedUpdate() {
3482 +export function checkIfWorkInProgressReceivedUpdate(): boolean {
3483 return didReceiveUpdate;
3484 }
3485
packages/react-reconciler/src/ReactFiberClassUpdateQueue.new.js
+1 -1
@@ -164,7 +164,7 @@ let hasForceUpdate = false;
164
165 let didWarnUpdateInsideUpdate;
166 let currentlyProcessingQueue;
167 -export let resetCurrentlyProcessingQueue;
167 +export let resetCurrentlyProcessingQueue: () => void;
168 if (__DEV__) {
169 didWarnUpdateInsideUpdate = false;
170 currentlyProcessingQueue = null;
packages/react-reconciler/src/ReactFiberClassUpdateQueue.old.js
+1 -1
@@ -164,7 +164,7 @@ let hasForceUpdate = false;
164
165 let didWarnUpdateInsideUpdate;
166 let currentlyProcessingQueue;
167 -export let resetCurrentlyProcessingQueue;
167 +export let resetCurrentlyProcessingQueue: () => void;
168 if (__DEV__) {
169 didWarnUpdateInsideUpdate = false;
170 currentlyProcessingQueue = null;
packages/react-reconciler/src/ReactFiberCommitWork.new.js
+1 -1
@@ -320,7 +320,7 @@ let shouldFireAfterActiveInstanceBlur: boolean = false;
320 export function commitBeforeMutationEffects(
321 root: FiberRoot,
322 firstChild: Fiber,
323 -) {
323 +): boolean {
324 focusedInstanceHandle = prepareForCommit(root.containerInfo);
325
326 nextEffect = firstChild;
packages/react-reconciler/src/ReactFiberCommitWork.old.js
+1 -1
@@ -320,7 +320,7 @@ let shouldFireAfterActiveInstanceBlur: boolean = false;
320 export function commitBeforeMutationEffects(
321 root: FiberRoot,
322 firstChild: Fiber,
323 -) {
323 +): boolean {
324 focusedInstanceHandle = prepareForCommit(root.containerInfo);
325
326 nextEffect = firstChild;
packages/react-reconciler/src/ReactFiberHiddenContext.new.js
+1 -1
@@ -66,6 +66,6 @@ export function popHiddenContext(fiber: Fiber): void {
66 pop(prevRenderLanesStackCursor, fiber);
67 }
68
69 -export function isCurrentTreeHidden() {
69 +export function isCurrentTreeHidden(): boolean {
70 return currentTreeHiddenStackCursor.current !== null;
71 }
packages/react-reconciler/src/ReactFiberHiddenContext.old.js
+1 -1
@@ -66,6 +66,6 @@ export function popHiddenContext(fiber: Fiber): void {
66 pop(prevRenderLanesStackCursor, fiber);
67 }
68
69 -export function isCurrentTreeHidden() {
69 +export function isCurrentTreeHidden(): boolean {
70 return currentTreeHiddenStackCursor.current !== null;
71 }
packages/react-reconciler/src/ReactFiberHooks.new.js
+1 -1
@@ -571,7 +571,7 @@ export function renderWithHooks<Props, SecondArg>(
571 return children;
572 }
573
574 -export function checkDidRenderIdHook() {
574 +export function checkDidRenderIdHook(): boolean {
575 // This should be called immediately after every renderWithHooks call.
576 // Conceptually, it's part of the return value of renderWithHooks; it's only a
577 // separate function to avoid using an array tuple.
packages/react-reconciler/src/ReactFiberHooks.old.js
+1 -1
@@ -571,7 +571,7 @@ export function renderWithHooks<Props, SecondArg>(
571 return children;
572 }
573
574 -export function checkDidRenderIdHook() {
574 +export function checkDidRenderIdHook(): boolean {
575 // This should be called immediately after every renderWithHooks call.
576 // Conceptually, it's part of the return value of renderWithHooks; it's only a
577 // separate function to avoid using an array tuple.
packages/react-reconciler/src/ReactFiberHotReloading.js
+15 -8
@@ -7,6 +7,8 @@
7 * @flow
8 */
9
10 +import type {Fiber} from './ReactInternalTypes';
11 +import type {ReactElement} from '../../shared/ReactElementType';
12 import type {Instance} from './ReactFiberHostConfig';
13 import type {FiberRoot} from './ReactInternalTypes';
14 import type {ReactNodeList} from 'shared/ReactTypes';
@@ -58,9 +60,9 @@ export type FindHostInstancesForRefresh = (
60 families: Array<Family>,
61 ) => Set<Instance>;
62
61 -export const setRefreshHandler = enableNewReconciler
62 - ? setRefreshHandler_new
63 - : setRefreshHandler_old;
63 +export const setRefreshHandler: (
64 + handler: RefreshHandler | null,
65 +) => void = enableNewReconciler ? setRefreshHandler_new : setRefreshHandler_old;
66 export const resolveFunctionForHotReloading = enableNewReconciler
67 ? resolveFunctionForHotReloading_new
68 : resolveFunctionForHotReloading_old;
@@ -70,18 +72,23 @@ export const resolveClassForHotReloading = enableNewReconciler
72 export const resolveForwardRefForHotReloading = enableNewReconciler
73 ? resolveForwardRefForHotReloading_new
74 : resolveForwardRefForHotReloading_old;
73 -export const isCompatibleFamilyForHotReloading = enableNewReconciler
75 +export const isCompatibleFamilyForHotReloading: (
76 + fiber: Fiber,
77 + element: ReactElement,
78 +) => boolean = enableNewReconciler
79 ? isCompatibleFamilyForHotReloading_new
80 : isCompatibleFamilyForHotReloading_old;
76 -export const markFailedErrorBoundaryForHotReloading = enableNewReconciler
81 +export const markFailedErrorBoundaryForHotReloading: (
82 + fiber: Fiber,
83 +) => void = enableNewReconciler
84 ? markFailedErrorBoundaryForHotReloading_new
85 : markFailedErrorBoundaryForHotReloading_old;
79 -export const scheduleRefresh = enableNewReconciler
86 +export const scheduleRefresh: ScheduleRefresh = enableNewReconciler
87 ? scheduleRefresh_new
88 : scheduleRefresh_old;
82 -export const scheduleRoot = enableNewReconciler
89 +export const scheduleRoot: ScheduleRoot = enableNewReconciler
90 ? scheduleRoot_new
91 : scheduleRoot_old;
85 -export const findHostInstancesForRefresh = enableNewReconciler
92 +export const findHostInstancesForRefresh: FindHostInstancesForRefresh = enableNewReconciler
93 ? findHostInstancesForRefresh_new
94 : findHostInstancesForRefresh_old;
packages/react-reconciler/src/ReactFiberHydrationContext.new.js
+2 -2
@@ -109,7 +109,7 @@ export function markDidThrowWhileHydratingDEV() {
109 }
110 }
111
112 -export function didSuspendOrErrorWhileHydratingDEV() {
112 +export function didSuspendOrErrorWhileHydratingDEV(): boolean {
113 if (__DEV__) {
114 return didSuspendOrErrorDEV;
115 }
@@ -685,7 +685,7 @@ function popHydrationState(fiber: Fiber): boolean {
685 return true;
686 }
687
688 -function hasUnhydratedTailNodes() {
688 +function hasUnhydratedTailNodes(): boolean {
689 return isHydrating && nextHydratableInstance !== null;
690 }
691
packages/react-reconciler/src/ReactFiberHydrationContext.old.js
+2 -2
@@ -109,7 +109,7 @@ export function markDidThrowWhileHydratingDEV() {
109 }
110 }
111
112 -export function didSuspendOrErrorWhileHydratingDEV() {
112 +export function didSuspendOrErrorWhileHydratingDEV(): boolean {
113 if (__DEV__) {
114 return didSuspendOrErrorDEV;
115 }
@@ -685,7 +685,7 @@ function popHydrationState(fiber: Fiber): boolean {
685 return true;
686 }
687
688 -function hasUnhydratedTailNodes() {
688 +function hasUnhydratedTailNodes(): boolean {
689 return isHydrating && nextHydratableInstance !== null;
690 }
691
packages/react-reconciler/src/ReactFiberLane.new.js
+12 -12
@@ -435,7 +435,7 @@ export function markStarvedLanesAsExpired(
435
436 // This returns the highest priority pending lanes regardless of whether they
437 // are suspended.
438 -export function getHighestPriorityPendingLanes(root: FiberRoot) {
438 +export function getHighestPriorityPendingLanes(root: FiberRoot): Lanes {
439 return getHighestPriorityLanes(root.pendingLanes);
440 }
441
@@ -458,25 +458,25 @@ export function getLanesToRetrySynchronouslyOnError(
458 return NoLanes;
459 }
460
461 -export function includesSyncLane(lanes: Lanes) {
461 +export function includesSyncLane(lanes: Lanes): boolean {
462 return (lanes & SyncLane) !== NoLanes;
463 }
464
465 -export function includesNonIdleWork(lanes: Lanes) {
465 +export function includesNonIdleWork(lanes: Lanes): boolean {
466 return (lanes & NonIdleLanes) !== NoLanes;
467 }
468 -export function includesOnlyRetries(lanes: Lanes) {
468 +export function includesOnlyRetries(lanes: Lanes): boolean {
469 return (lanes & RetryLanes) === lanes;
470 }
471 -export function includesOnlyNonUrgentLanes(lanes: Lanes) {
471 +export function includesOnlyNonUrgentLanes(lanes: Lanes): boolean {
472 const UrgentLanes = SyncLane | InputContinuousLane | DefaultLane;
473 return (lanes & UrgentLanes) === NoLanes;
474 }
475 -export function includesOnlyTransitions(lanes: Lanes) {
475 +export function includesOnlyTransitions(lanes: Lanes): boolean {
476 return (lanes & TransitionLanes) === lanes;
477 }
478
479 -export function includesBlockingLane(root: FiberRoot, lanes: Lanes) {
479 +export function includesBlockingLane(root: FiberRoot, lanes: Lanes): boolean {
480 if (
481 allowConcurrentByDefault &&
482 (root.current.mode & ConcurrentUpdatesByDefaultMode) !== NoMode
@@ -492,13 +492,13 @@ export function includesBlockingLane(root: FiberRoot, lanes: Lanes) {
492 return (lanes & SyncDefaultLanes) !== NoLanes;
493 }
494
495 -export function includesExpiredLane(root: FiberRoot, lanes: Lanes) {
495 +export function includesExpiredLane(root: FiberRoot, lanes: Lanes): boolean {
496 // This is a separate check from includesBlockingLane because a lane can
497 // expire after a render has already started.
498 return (lanes & root.expiredLanes) !== NoLanes;
499 }
500
501 -export function isTransitionLane(lane: Lane) {
501 +export function isTransitionLane(lane: Lane): boolean {
502 return (lane & TransitionLanes) !== NoLanes;
503 }
504
@@ -543,11 +543,11 @@ function laneToIndex(lane: Lane) {
543 return pickArbitraryLaneIndex(lane);
544 }
545
546 -export function includesSomeLane(a: Lanes | Lane, b: Lanes | Lane) {
546 +export function includesSomeLane(a: Lanes | Lane, b: Lanes | Lane): boolean {
547 return (a & b) !== NoLanes;
548 }
549
550 -export function isSubsetOfLanes(set: Lanes, subset: Lanes | Lane) {
550 +export function isSubsetOfLanes(set: Lanes, subset: Lanes | Lane): boolean {
551 return (set & subset) === subset;
552 }
553
@@ -569,7 +569,7 @@ export function laneToLanes(lane: Lane): Lanes {
569 return lane;
570 }
571
572 -export function higherPriorityLane(a: Lane, b: Lane) {
572 +export function higherPriorityLane(a: Lane, b: Lane): Lane {
573 // This works because the bit ranges decrease in priority as you go left.
574 return a !== NoLane && a < b ? a : b;
575 }
packages/react-reconciler/src/ReactFiberLane.old.js
+12 -12
@@ -435,7 +435,7 @@ export function markStarvedLanesAsExpired(
435
436 // This returns the highest priority pending lanes regardless of whether they
437 // are suspended.
438 -export function getHighestPriorityPendingLanes(root: FiberRoot) {
438 +export function getHighestPriorityPendingLanes(root: FiberRoot): Lanes {
439 return getHighestPriorityLanes(root.pendingLanes);
440 }
441
@@ -458,25 +458,25 @@ export function getLanesToRetrySynchronouslyOnError(
458 return NoLanes;
459 }
460
461 -export function includesSyncLane(lanes: Lanes) {
461 +export function includesSyncLane(lanes: Lanes): boolean {
462 return (lanes & SyncLane) !== NoLanes;
463 }
464
465 -export function includesNonIdleWork(lanes: Lanes) {
465 +export function includesNonIdleWork(lanes: Lanes): boolean {
466 return (lanes & NonIdleLanes) !== NoLanes;
467 }
468 -export function includesOnlyRetries(lanes: Lanes) {
468 +export function includesOnlyRetries(lanes: Lanes): boolean {
469 return (lanes & RetryLanes) === lanes;
470 }
471 -export function includesOnlyNonUrgentLanes(lanes: Lanes) {
471 +export function includesOnlyNonUrgentLanes(lanes: Lanes): boolean {
472 const UrgentLanes = SyncLane | InputContinuousLane | DefaultLane;
473 return (lanes & UrgentLanes) === NoLanes;
474 }
475 -export function includesOnlyTransitions(lanes: Lanes) {
475 +export function includesOnlyTransitions(lanes: Lanes): boolean {
476 return (lanes & TransitionLanes) === lanes;
477 }
478
479 -export function includesBlockingLane(root: FiberRoot, lanes: Lanes) {
479 +export function includesBlockingLane(root: FiberRoot, lanes: Lanes): boolean {
480 if (
481 allowConcurrentByDefault &&
482 (root.current.mode & ConcurrentUpdatesByDefaultMode) !== NoMode
@@ -492,13 +492,13 @@ export function includesBlockingLane(root: FiberRoot, lanes: Lanes) {
492 return (lanes & SyncDefaultLanes) !== NoLanes;
493 }
494
495 -export function includesExpiredLane(root: FiberRoot, lanes: Lanes) {
495 +export function includesExpiredLane(root: FiberRoot, lanes: Lanes): boolean {
496 // This is a separate check from includesBlockingLane because a lane can
497 // expire after a render has already started.
498 return (lanes & root.expiredLanes) !== NoLanes;
499 }
500
501 -export function isTransitionLane(lane: Lane) {
501 +export function isTransitionLane(lane: Lane): boolean {
502 return (lane & TransitionLanes) !== NoLanes;
503 }
504
@@ -543,11 +543,11 @@ function laneToIndex(lane: Lane) {
543 return pickArbitraryLaneIndex(lane);
544 }
545
546 -export function includesSomeLane(a: Lanes | Lane, b: Lanes | Lane) {
546 +export function includesSomeLane(a: Lanes | Lane, b: Lanes | Lane): boolean {
547 return (a & b) !== NoLanes;
548 }
549
550 -export function isSubsetOfLanes(set: Lanes, subset: Lanes | Lane) {
550 +export function isSubsetOfLanes(set: Lanes, subset: Lanes | Lane): boolean {
551 return (set & subset) === subset;
552 }
553
@@ -569,7 +569,7 @@ export function laneToLanes(lane: Lane): Lanes {
569 return lane;
570 }
571
572 -export function higherPriorityLane(a: Lane, b: Lane) {
572 +export function higherPriorityLane(a: Lane, b: Lane): Lane {
573 // This works because the bit ranges decrease in priority as you go left.
574 return a !== NoLane && a < b ? a : b;
575 }
packages/react-reconciler/src/ReactFiberNewContext.new.js
+3 -1
@@ -598,7 +598,9 @@ function propagateParentContextChanges(
598 workInProgress.flags |= DidPropagateContext;
599 }
600
601 -export function checkIfContextChanged(currentDependencies: Dependencies) {
601 +export function checkIfContextChanged(
602 + currentDependencies: Dependencies,
603 +): boolean {
604 if (!enableLazyContextPropagation) {
605 return false;
606 }
packages/react-reconciler/src/ReactFiberNewContext.old.js
+3 -1
@@ -598,7 +598,9 @@ function propagateParentContextChanges(
598 workInProgress.flags |= DidPropagateContext;
599 }
600
601 -export function checkIfContextChanged(currentDependencies: Dependencies) {
601 +export function checkIfContextChanged(
602 + currentDependencies: Dependencies,
603 +): boolean {
604 if (!enableLazyContextPropagation) {
605 return false;
606 }
packages/react-reconciler/src/ReactFiberShellHydration.js
+1 -1
@@ -13,7 +13,7 @@ import type {RootState} from './ReactFiberRoot.new';
13 // This is imported by the event replaying implementation in React DOM. It's
14 // in a separate file to break a circular dependency between the renderer and
15 // the reconciler.
16 -export function isRootDehydrated(root: FiberRoot) {
16 +export function isRootDehydrated(root: FiberRoot): boolean {
17 const currentState: RootState = root.current.memoizedState;
18 return currentState.isDehydrated;
19 }
packages/react-reconciler/src/ReactFiberSyncTaskQueue.new.js
+1 -1
@@ -48,7 +48,7 @@ export function flushSyncCallbacksOnlyInLegacyMode() {
48 }
49 }
50
51 -export function flushSyncCallbacks() {
51 +export function flushSyncCallbacks(): null {
52 if (!isFlushingSyncQueue && syncQueue !== null) {
53 // Prevent re-entrance.
54 isFlushingSyncQueue = true;
packages/react-reconciler/src/ReactFiberSyncTaskQueue.old.js
+1 -1
@@ -48,7 +48,7 @@ export function flushSyncCallbacksOnlyInLegacyMode() {
48 }
49 }
50
51 -export function flushSyncCallbacks() {
51 +export function flushSyncCallbacks(): null {
52 if (!isFlushingSyncQueue && syncQueue !== null) {
53 // Prevent re-entrance.
54 isFlushingSyncQueue = true;
packages/react-reconciler/src/ReactFiberWakeable.new.js
+2 -2
@@ -24,11 +24,11 @@ let lastUsedThenable: Thenable<any> | null = null;
24
25 const MAX_AD_HOC_SUSPEND_COUNT = 50;
26
27 -export function isTrackingSuspendedThenable() {
27 +export function isTrackingSuspendedThenable(): boolean {
28 return suspendedThenable !== null;
29 }
30
31 -export function suspendedThenableDidResolve() {
31 +export function suspendedThenableDidResolve(): boolean {
32 if (suspendedThenable !== null) {
33 const status = suspendedThenable.status;
34 return status === 'fulfilled' || status === 'rejected';
packages/react-reconciler/src/ReactFiberWakeable.old.js
+2 -2
@@ -24,11 +24,11 @@ let lastUsedThenable: Thenable<any> | null = null;
24
25 const MAX_AD_HOC_SUSPEND_COUNT = 50;
26
27 -export function isTrackingSuspendedThenable() {
27 +export function isTrackingSuspendedThenable(): boolean {
28 return suspendedThenable !== null;
29 }
30
31 -export function suspendedThenableDidResolve() {
31 +export function suspendedThenableDidResolve(): boolean {
32 if (suspendedThenable !== null) {
33 const status = suspendedThenable.status;
34 return status === 'fulfilled' || status === 'rejected';
packages/react-reconciler/src/ReactFiberWorkLoop.new.js
+4 -4
@@ -357,7 +357,7 @@ let workInProgressRootRenderTargetTime: number = Infinity;
357 const RENDER_TIMEOUT_MS = 500;
358
359 let workInProgressTransitions: Array<Transition> | null = null;
360 -export function getWorkInProgressTransitions() {
360 +export function getWorkInProgressTransitions(): null | Array<Transition> {
361 return workInProgressTransitions;
362 }
363
@@ -814,7 +814,7 @@ export function scheduleInitialHydrationOnRoot(
814 ensureRootIsScheduled(root, eventTime);
815 }
816
817 -export function isUnsafeClassRenderPhaseUpdate(fiber: Fiber) {
817 +export function isUnsafeClassRenderPhaseUpdate(fiber: Fiber): boolean {
818 // Check if this is a render phase update. Only called by class components,
819 // which special (deprecated) behavior for UNSAFE_componentWillReceive props.
820 return (
@@ -1557,7 +1557,7 @@ declare function flushSync<R>(fn: () => R): R;
1557 // eslint-disable-next-line no-redeclare
1558 declare function flushSync(): void;
1559 // eslint-disable-next-line no-redeclare
1560 -export function flushSync(fn) {
1560 +export function flushSync(fn): void {
1561 // In legacy mode, we flush pending passive effects at the beginning of the
1562 // next event, not at the end of the previous one.
1563 if (
@@ -1596,7 +1596,7 @@ export function flushSync(fn) {
1596 }
1597 }
1598
1599 -export function isAlreadyRendering() {
1599 +export function isAlreadyRendering(): boolean {
1600 // Used by the renderer to print a warning if certain APIs are called from
1601 // the wrong context.
1602 return (
packages/react-reconciler/src/ReactFiberWorkLoop.old.js
+4 -4
@@ -357,7 +357,7 @@ let workInProgressRootRenderTargetTime: number = Infinity;
357 const RENDER_TIMEOUT_MS = 500;
358
359 let workInProgressTransitions: Array<Transition> | null = null;
360 -export function getWorkInProgressTransitions() {
360 +export function getWorkInProgressTransitions(): null | Array<Transition> {
361 return workInProgressTransitions;
362 }
363
@@ -814,7 +814,7 @@ export function scheduleInitialHydrationOnRoot(
814 ensureRootIsScheduled(root, eventTime);
815 }
816
817 -export function isUnsafeClassRenderPhaseUpdate(fiber: Fiber) {
817 +export function isUnsafeClassRenderPhaseUpdate(fiber: Fiber): boolean {
818 // Check if this is a render phase update. Only called by class components,
819 // which special (deprecated) behavior for UNSAFE_componentWillReceive props.
820 return (
@@ -1557,7 +1557,7 @@ declare function flushSync<R>(fn: () => R): R;
1557 // eslint-disable-next-line no-redeclare
1558 declare function flushSync(): void;
1559 // eslint-disable-next-line no-redeclare
1560 -export function flushSync(fn) {
1560 +export function flushSync(fn): void {
1561 // In legacy mode, we flush pending passive effects at the beginning of the
1562 // next event, not at the end of the previous one.
1563 if (
@@ -1596,7 +1596,7 @@ export function flushSync(fn) {
1596 }
1597 }
1598
1599 -export function isAlreadyRendering() {
1599 +export function isAlreadyRendering(): boolean {
1600 // Used by the renderer to print a warning if certain APIs are called from
1601 // the wrong context.
1602 return (
packages/react-reconciler/src/clz32.js
+3 -1
@@ -9,7 +9,9 @@
9
10 // TODO: This is pretty well supported by browsers. Maybe we can drop it.
11
12 -export const clz32 = Math.clz32 ? Math.clz32 : clz32Fallback;
12 +export const clz32: (x: number) => number = Math.clz32
13 + ? Math.clz32
14 + : clz32Fallback;
15
16 // Count leading zeros.
17 // Based on:
packages/react-refresh/src/ReactFreshRuntime.js
+2 -2
@@ -599,13 +599,13 @@ export function injectIntoGlobalHook(globalObject: any): void {
599 }
600 }
601
602 -export function hasUnrecoverableErrors() {
602 +export function hasUnrecoverableErrors(): boolean {
603 // TODO: delete this after removing dependency in RN.
604 return false;
605 }
606
607 // Exposed for testing.
608 -export function _getMountedRootCount() {
608 +export function _getMountedRootCount(): number {
609 if (__DEV__) {
610 return mountedRoots.size;
611 } else {
packages/react-server-dom-webpack/src/ReactFlightWebpackNodeLoader.js
+1 -1
@@ -94,7 +94,7 @@ export async function getSource(
94 url: string,
95 context: GetSourceContext,
96 defaultGetSource: GetSourceFunction,
97 -) {
97 +): Promise<{source: Source}> {
98 // We stash this in case we end up needing to resolve export * statements later.
99 stashedGetSource = defaultGetSource;
100 return defaultGetSource(url, context, defaultGetSource);
packages/react-server-dom-webpack/src/ReactFlightWebpackPlugin.js
+1 -1
@@ -29,7 +29,7 @@ class ClientReferenceDependency extends ModuleDependency {
29 super(request);
30 }
31
32 - get type() {
32 + get type(): string {
33 return 'client-reference';
34 }
35 }
packages/react-server/src/ReactFizzContext.js
+2 -1
@@ -17,7 +17,8 @@ if (__DEV__) {
17 warnedAboutMissingGetChildContext = {};
18 }
19
20 -export const emptyContextObject = {};
20 +// $FlowFixMe[incompatible-exact]
21 +export const emptyContextObject: {} = {};
22 if (__DEV__) {
23 Object.freeze(emptyContextObject);
24 }
packages/react-server/src/ReactFizzHooks.js
+2 -2
@@ -239,13 +239,13 @@ export function finishHooks(
239 return children;
240 }
241
242 -export function getThenableStateAfterSuspending() {
242 +export function getThenableStateAfterSuspending(): null | ThenableState {
243 const state = thenableState;
244 thenableState = null;
245 return state;
246 }
247
248 -export function checkDidRenderIdHook() {
248 +export function checkDidRenderIdHook(): boolean {
249 // This should be called immediately after every finishHooks call.
250 // Conceptually, it's part of the return value of finishHooks; it's only a
251 // separate function to avoid using an array tuple.
packages/react-server/src/ReactFlightHooks.js
+1 -1
@@ -39,7 +39,7 @@ export function prepareToUseHooksForComponent(
39 thenableState = prevThenableState;
40 }
41
42 -export function getThenableStateAfterSuspending() {
42 +export function getThenableStateAfterSuspending(): null | ThenableState {
43 const state = thenableState;
44 thenableState = null;
45 return state;
packages/react/src/BadMapPolyfill.js
+1 -1
@@ -6,7 +6,7 @@
6 * @flow
7 */
8
9 -export let hasBadMapPolyfill;
9 +export let hasBadMapPolyfill: boolean;
10
11 if (__DEV__) {
12 hasBadMapPolyfill = false;
packages/scheduler/src/forks/SchedulerPostTask.js
+1 -1
@@ -59,7 +59,7 @@ let currentPriorityLevel_DEPRECATED = NormalPriority;
59
60 // `isInputPending` is not available. Since we have no way of knowing if
61 // there's pending input, always yield at the end of the frame.
62 -export function unstable_shouldYield() {
62 +export function unstable_shouldYield(): boolean {
63 return getCurrentTime() >= deadline;
64 }
65
packages/shared/CheckStringCoercion.js
+12 -6
@@ -73,7 +73,7 @@ function testStringCoercion(value: mixed) {
73 export function checkAttributeStringCoercion(
74 value: mixed,
75 attributeName: string,
76 -) {
76 +): void | string {
77 if (__DEV__) {
78 if (willCoercionThrow(value)) {
79 console.error(
@@ -87,7 +87,7 @@ export function checkAttributeStringCoercion(
87 }
88 }
89
90 -export function checkKeyStringCoercion(value: mixed) {
90 +export function checkKeyStringCoercion(value: mixed): void | string {
91 if (__DEV__) {
92 if (willCoercionThrow(value)) {
93 console.error(
@@ -100,7 +100,10 @@ export function checkKeyStringCoercion(value: mixed) {
100 }
101 }
102
103 -export function checkPropStringCoercion(value: mixed, propName: string) {
103 +export function checkPropStringCoercion(
104 + value: mixed,
105 + propName: string,
106 +): void | string {
107 if (__DEV__) {
108 if (willCoercionThrow(value)) {
109 console.error(
@@ -114,7 +117,10 @@ export function checkPropStringCoercion(value: mixed, propName: string) {
117 }
118 }
119
117 -export function checkCSSPropertyStringCoercion(value: mixed, propName: string) {
120 +export function checkCSSPropertyStringCoercion(
121 + value: mixed,
122 + propName: string,
123 +): void | string {
124 if (__DEV__) {
125 if (willCoercionThrow(value)) {
126 console.error(
@@ -128,7 +134,7 @@ export function checkCSSPropertyStringCoercion(value: mixed, propName: string) {
134 }
135 }
136
131 -export function checkHtmlStringCoercion(value: mixed) {
137 +export function checkHtmlStringCoercion(value: mixed): void | string {
138 if (__DEV__) {
139 if (willCoercionThrow(value)) {
140 console.error(
@@ -141,7 +147,7 @@ export function checkHtmlStringCoercion(value: mixed) {
147 }
148 }
149
144 -export function checkFormFieldValueStringCoercion(value: mixed) {
150 +export function checkFormFieldValueStringCoercion(value: mixed): void | string {
151 if (__DEV__) {
152 if (willCoercionThrow(value)) {
153 console.error(
packages/shared/ReactErrorUtils.js
+1 -1
@@ -105,7 +105,7 @@ export function rethrowCaughtError() {
105 }
106 }
107
108 -export function hasCaughtError() {
108 +export function hasCaughtError(): boolean {
109 return hasError;
110 }
111
packages/shared/ReactSymbols.js
+28 -20
@@ -12,28 +12,36 @@
12 // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'
13
14 // The Symbol used to tag the ReactElement-like types.
15 -export const REACT_ELEMENT_TYPE = Symbol.for('react.element');
16 -export const REACT_PORTAL_TYPE = Symbol.for('react.portal');
17 -export const REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');
18 -export const REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');
19 -export const REACT_PROFILER_TYPE = Symbol.for('react.profiler');
20 -export const REACT_PROVIDER_TYPE = Symbol.for('react.provider');
21 -export const REACT_CONTEXT_TYPE = Symbol.for('react.context');
22 -export const REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context');
23 -export const REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');
24 -export const REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');
25 -export const REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');
26 -export const REACT_MEMO_TYPE = Symbol.for('react.memo');
27 -export const REACT_LAZY_TYPE = Symbol.for('react.lazy');
28 -export const REACT_SCOPE_TYPE = Symbol.for('react.scope');
29 -export const REACT_DEBUG_TRACING_MODE_TYPE = Symbol.for(
15 +export const REACT_ELEMENT_TYPE: symbol = Symbol.for('react.element');
16 +export const REACT_PORTAL_TYPE: symbol = Symbol.for('react.portal');
17 +export const REACT_FRAGMENT_TYPE: symbol = Symbol.for('react.fragment');
18 +export const REACT_STRICT_MODE_TYPE: symbol = Symbol.for('react.strict_mode');
19 +export const REACT_PROFILER_TYPE: symbol = Symbol.for('react.profiler');
20 +export const REACT_PROVIDER_TYPE: symbol = Symbol.for('react.provider');
21 +export const REACT_CONTEXT_TYPE: symbol = Symbol.for('react.context');
22 +export const REACT_SERVER_CONTEXT_TYPE: symbol = Symbol.for(
23 + 'react.server_context',
24 +);
25 +export const REACT_FORWARD_REF_TYPE: symbol = Symbol.for('react.forward_ref');
26 +export const REACT_SUSPENSE_TYPE: symbol = Symbol.for('react.suspense');
27 +export const REACT_SUSPENSE_LIST_TYPE: symbol = Symbol.for(
28 + 'react.suspense_list',
29 +);
30 +export const REACT_MEMO_TYPE: symbol = Symbol.for('react.memo');
31 +export const REACT_LAZY_TYPE: symbol = Symbol.for('react.lazy');
32 +export const REACT_SCOPE_TYPE: symbol = Symbol.for('react.scope');
33 +export const REACT_DEBUG_TRACING_MODE_TYPE: symbol = Symbol.for(
34 'react.debug_trace_mode',
35 );
32 -export const REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');
33 -export const REACT_LEGACY_HIDDEN_TYPE = Symbol.for('react.legacy_hidden');
34 -export const REACT_CACHE_TYPE = Symbol.for('react.cache');
35 -export const REACT_TRACING_MARKER_TYPE = Symbol.for('react.tracing_marker');
36 -export const REACT_SERVER_CONTEXT_DEFAULT_VALUE_NOT_LOADED = Symbol.for(
36 +export const REACT_OFFSCREEN_TYPE: symbol = Symbol.for('react.offscreen');
37 +export const REACT_LEGACY_HIDDEN_TYPE: symbol = Symbol.for(
38 + 'react.legacy_hidden',
39 +);
40 +export const REACT_CACHE_TYPE: symbol = Symbol.for('react.cache');
41 +export const REACT_TRACING_MARKER_TYPE: symbol = Symbol.for(
42 + 'react.tracing_marker',
43 +);
44 +export const REACT_SERVER_CONTEXT_DEFAULT_VALUE_NOT_LOADED: symbol = Symbol.for(
45 'react.default_value',
46 );
47
packages/shared/forks/ReactFeatureFlags.www-dynamic.js
+1 -1
@@ -19,7 +19,7 @@ export const enableFilterEmptyStringAttributesDOM = __VARIANT__;
19 export const enableLegacyFBSupport = __VARIANT__;
20 export const skipUnmountedBoundaries = __VARIANT__;
21 export const enableUseRefAccessWarning = __VARIANT__;
22 -export const deletedTreeCleanUpLevel = __VARIANT__ ? 3 : 1;
22 +export const deletedTreeCleanUpLevel: number = __VARIANT__ ? 3 : 1;
23 export const enableProfilerNestedUpdateScheduledHook = __VARIANT__;
24 export const disableSchedulerTimeoutInWorkLoop = __VARIANT__;
25 export const enableLazyContextPropagation = __VARIANT__;
packages/shared/forks/ReactFeatureFlags.www.js
+3 -3
@@ -39,13 +39,13 @@ export const {
39 // On WWW, __EXPERIMENTAL__ is used for a new modern build.
40 // It's not used anywhere in production yet.
41
42 -export const enableStrictEffects =
42 +export const enableStrictEffects: boolean =
43 __DEV__ && dynamicFeatureFlags.enableStrictEffects;
44 export const debugRenderPhaseSideEffectsForStrictMode = __DEV__;
45 export const enableProfilerTimer = __PROFILE__;
46 export const enableProfilerCommitHooks = __PROFILE__;
47 export const enableProfilerNestedUpdatePhase = __PROFILE__;
48 -export const enableProfilerNestedUpdateScheduledHook =
48 +export const enableProfilerNestedUpdateScheduledHook: boolean =
49 __PROFILE__ && dynamicFeatureFlags.enableProfilerNestedUpdateScheduledHook;
50 export const enableUpdaterTracking = __PROFILE__;
51
@@ -57,7 +57,7 @@ export const enableUseHook = true;
57 export const enableUseMemoCacheHook = true;
58
59 // Logs additional User Timing API marks for use with an experimental profiling tool.
60 -export const enableSchedulingProfiler =
60 +export const enableSchedulingProfiler: boolean =
61 __PROFILE__ && dynamicFeatureFlags.enableSchedulingProfiler;
62
63 // Note: we'll want to remove this when we to userland implementation.
packages/shared/isValidElementType.js
+1 -1
@@ -35,7 +35,7 @@ import {
35
36 const REACT_MODULE_REFERENCE: symbol = Symbol.for('react.module.reference');
37
38 -export default function isValidElementType(type: mixed) {
38 +export default function isValidElementType(type: mixed): boolean {
39 if (typeof type === 'string' || typeof type === 'function') {
40 return true;
41 }