From ec5dd0ab3acb206dd4aa46c6d5573c235c8eae98 Mon Sep 17 00:00:00 2001 From: Jan Kassens Date: Thu, 21 Aug 2025 13:30:01 -0400 Subject: [PATCH] Update Flow to 0.257 (#34253) After an easy couple version with #34252, this version is less flexible (and safer) on inferring exported types mainly. We require to annotate some exported types to differentiate between `boolean` and literal `true` types, etc. --- package.json | 4 +- .../setupNativeStyleEditor.js | 2 +- .../config/DevToolsFeatureFlags.core-fb.js | 6 +- .../config/DevToolsFeatureFlags.core-oss.js | 6 +- .../config/DevToolsFeatureFlags.default.js | 6 +- .../DevToolsFeatureFlags.extension-fb.js | 6 +- .../DevToolsFeatureFlags.extension-oss.js | 6 +- .../src/content-views/constants.js | 2 +- .../src/client/ReactFiberConfigDOM.js | 2 +- .../src/events/DOMPluginEventSystem.js | 2 +- .../src/ReactFiberConfigFabric.js | 2 +- .../src/ReactFiberConfigNative.js | 2 +- packages/react-reconciler/src/ReactFiber.js | 4 +- .../src/ReactFiberCommitWork.js | 3 +- .../src/ReactFiberCompleteWork.js | 3 +- .../src/ReactFiberConfigTestHost.js | 2 +- .../src/ReactTestRenderer.js | 3 +- packages/react/index.development.js | 1 - packages/react/index.js | 1 - packages/scheduler/src/forks/Scheduler.js | 4 +- packages/scheduler/src/forks/SchedulerMock.js | 2 +- .../scheduler/src/forks/SchedulerNative.js | 21 ++-- .../scheduler/src/forks/SchedulerPostTask.js | 2 +- packages/shared/ReactFeatureFlags.js | 66 +++++------ .../forks/ReactFeatureFlags.native-fb.js | 92 +++++++-------- .../forks/ReactFeatureFlags.native-oss.js | 110 +++++++++--------- .../forks/ReactFeatureFlags.test-renderer.js | 110 +++++++++--------- .../ReactFeatureFlags.test-renderer.www.js | 110 +++++++++--------- .../forks/ReactFeatureFlags.www-dynamic.js | 34 +++--- .../shared/forks/ReactFeatureFlags.www.js | 66 +++++------ yarn.lock | 10 +- 31 files changed, 346 insertions(+), 344 deletions(-) diff --git a/package.json b/package.json index 36ea560771..df04893c51 100644 --- a/package.json +++ b/package.json @@ -73,8 +73,8 @@ "eslint-plugin-react-internal": "link:./scripts/eslint-rules", "fbjs-scripts": "^3.0.1", "filesize": "^6.0.1", - "flow-bin": "^0.256", - "flow-remove-types": "^2.256", + "flow-bin": "^0.257", + "flow-remove-types": "^2.257", "glob": "^7.1.6", "glob-stream": "^6.1.0", "google-closure-compiler": "^20230206.0.0", diff --git a/packages/react-devtools-shared/src/backend/NativeStyleEditor/setupNativeStyleEditor.js b/packages/react-devtools-shared/src/backend/NativeStyleEditor/setupNativeStyleEditor.js index 728f0e691c..7a8bfff43b 100644 --- a/packages/react-devtools-shared/src/backend/NativeStyleEditor/setupNativeStyleEditor.js +++ b/packages/react-devtools-shared/src/backend/NativeStyleEditor/setupNativeStyleEditor.js @@ -194,7 +194,7 @@ function renameStyle( const {instance, style} = data; const newStyle = newName - ? {[oldName]: undefined, [newName]: value} + ? {[oldName]: (undefined: string | void), [newName]: value} : {[oldName]: undefined}; let customStyle; diff --git a/packages/react-devtools-shared/src/config/DevToolsFeatureFlags.core-fb.js b/packages/react-devtools-shared/src/config/DevToolsFeatureFlags.core-fb.js index 47e15953c9..9cec3ce338 100644 --- a/packages/react-devtools-shared/src/config/DevToolsFeatureFlags.core-fb.js +++ b/packages/react-devtools-shared/src/config/DevToolsFeatureFlags.core-fb.js @@ -13,9 +13,9 @@ * It should always be imported from "react-devtools-feature-flags". ************************************************************************/ -export const enableLogger = true; -export const enableStyleXFeatures = true; -export const isInternalFacebookBuild = true; +export const enableLogger: boolean = true; +export const enableStyleXFeatures: boolean = true; +export const isInternalFacebookBuild: boolean = true; /************************************************************************ * Do not edit the code below. diff --git a/packages/react-devtools-shared/src/config/DevToolsFeatureFlags.core-oss.js b/packages/react-devtools-shared/src/config/DevToolsFeatureFlags.core-oss.js index e7ec62243a..326b0fd16c 100644 --- a/packages/react-devtools-shared/src/config/DevToolsFeatureFlags.core-oss.js +++ b/packages/react-devtools-shared/src/config/DevToolsFeatureFlags.core-oss.js @@ -13,9 +13,9 @@ * It should always be imported from "react-devtools-feature-flags". ************************************************************************/ -export const enableLogger = false; -export const enableStyleXFeatures = false; -export const isInternalFacebookBuild = false; +export const enableLogger: boolean = false; +export const enableStyleXFeatures: boolean = false; +export const isInternalFacebookBuild: boolean = false; /************************************************************************ * Do not edit the code below. diff --git a/packages/react-devtools-shared/src/config/DevToolsFeatureFlags.default.js b/packages/react-devtools-shared/src/config/DevToolsFeatureFlags.default.js index bba2c8fcbf..e7355f8a34 100644 --- a/packages/react-devtools-shared/src/config/DevToolsFeatureFlags.default.js +++ b/packages/react-devtools-shared/src/config/DevToolsFeatureFlags.default.js @@ -13,6 +13,6 @@ * It should always be imported from "react-devtools-feature-flags". ************************************************************************/ -export const enableLogger = false; -export const enableStyleXFeatures = false; -export const isInternalFacebookBuild = false; +export const enableLogger: boolean = false; +export const enableStyleXFeatures: boolean = false; +export const isInternalFacebookBuild: boolean = false; diff --git a/packages/react-devtools-shared/src/config/DevToolsFeatureFlags.extension-fb.js b/packages/react-devtools-shared/src/config/DevToolsFeatureFlags.extension-fb.js index 55ea045715..dc4f05d16f 100644 --- a/packages/react-devtools-shared/src/config/DevToolsFeatureFlags.extension-fb.js +++ b/packages/react-devtools-shared/src/config/DevToolsFeatureFlags.extension-fb.js @@ -13,9 +13,9 @@ * It should always be imported from "react-devtools-feature-flags". ************************************************************************/ -export const enableLogger = true; -export const enableStyleXFeatures = true; -export const isInternalFacebookBuild = true; +export const enableLogger: boolean = true; +export const enableStyleXFeatures: boolean = true; +export const isInternalFacebookBuild: boolean = true; /************************************************************************ * Do not edit the code below. diff --git a/packages/react-devtools-shared/src/config/DevToolsFeatureFlags.extension-oss.js b/packages/react-devtools-shared/src/config/DevToolsFeatureFlags.extension-oss.js index 75c8f149b3..71df63eef0 100644 --- a/packages/react-devtools-shared/src/config/DevToolsFeatureFlags.extension-oss.js +++ b/packages/react-devtools-shared/src/config/DevToolsFeatureFlags.extension-oss.js @@ -13,9 +13,9 @@ * It should always be imported from "react-devtools-feature-flags". ************************************************************************/ -export const enableLogger = false; -export const enableStyleXFeatures = false; -export const isInternalFacebookBuild = false; +export const enableLogger: boolean = false; +export const enableStyleXFeatures: boolean = false; +export const isInternalFacebookBuild: boolean = false; /************************************************************************ * Do not edit the code below. diff --git a/packages/react-devtools-timeline/src/content-views/constants.js b/packages/react-devtools-timeline/src/content-views/constants.js index ec1156605c..1d68ab6edf 100644 --- a/packages/react-devtools-timeline/src/content-views/constants.js +++ b/packages/react-devtools-timeline/src/content-views/constants.js @@ -16,7 +16,7 @@ export const MARKER_TEXT_PADDING = 8; export const COLOR_HOVER_DIM_DELTA = 5; export const TOP_ROW_PADDING = 4; export const NATIVE_EVENT_HEIGHT = 14; -export const SUSPENSE_EVENT_HEIGHT = 14; +export const SUSPENSE_EVENT_HEIGHT: number = 14; export const PENDING_SUSPENSE_EVENT_SIZE = 8; export const REACT_EVENT_DIAMETER = 6; export const USER_TIMING_MARK_SIZE = 8; diff --git a/packages/react-dom-bindings/src/client/ReactFiberConfigDOM.js b/packages/react-dom-bindings/src/client/ReactFiberConfigDOM.js index 568e892ad8..4d1e60e53a 100644 --- a/packages/react-dom-bindings/src/client/ReactFiberConfigDOM.js +++ b/packages/react-dom-bindings/src/client/ReactFiberConfigDOM.js @@ -746,7 +746,7 @@ export const scheduleTimeout: any = typeof setTimeout === 'function' ? setTimeout : (undefined: any); export const cancelTimeout: any = typeof clearTimeout === 'function' ? clearTimeout : (undefined: any); -export const noTimeout = -1; +export const noTimeout: -1 = -1; const localPromise = typeof Promise === 'function' ? Promise : undefined; const localRequestAnimationFrame = typeof requestAnimationFrame === 'function' diff --git a/packages/react-dom-bindings/src/events/DOMPluginEventSystem.js b/packages/react-dom-bindings/src/events/DOMPluginEventSystem.js index 916786128d..e30c479837 100644 --- a/packages/react-dom-bindings/src/events/DOMPluginEventSystem.js +++ b/packages/react-dom-bindings/src/events/DOMPluginEventSystem.js @@ -407,7 +407,7 @@ export function listenToNativeEventForNonManagedEventTarget( isCapturePhaseListener: boolean, target: EventTarget, ): void { - let eventSystemFlags = IS_EVENT_HANDLE_NON_MANAGED_NODE; + let eventSystemFlags: number = IS_EVENT_HANDLE_NON_MANAGED_NODE; const listenerSet = getEventListenerSet(target); const listenerSetKey = getListenerSetKey( domEventName, diff --git a/packages/react-native-renderer/src/ReactFiberConfigFabric.js b/packages/react-native-renderer/src/ReactFiberConfigFabric.js index 3f2f0d192a..4766c59b24 100644 --- a/packages/react-native-renderer/src/ReactFiberConfigFabric.js +++ b/packages/react-native-renderer/src/ReactFiberConfigFabric.js @@ -431,7 +431,7 @@ export const warnsIfNotActing = false; export const scheduleTimeout = setTimeout; export const cancelTimeout = clearTimeout; -export const noTimeout = -1; +export const noTimeout: -1 = -1; // ------------------- // Persistence diff --git a/packages/react-native-renderer/src/ReactFiberConfigNative.js b/packages/react-native-renderer/src/ReactFiberConfigNative.js index a4eb203b40..18a346495f 100644 --- a/packages/react-native-renderer/src/ReactFiberConfigNative.js +++ b/packages/react-native-renderer/src/ReactFiberConfigNative.js @@ -326,7 +326,7 @@ export const warnsIfNotActing = true; export const scheduleTimeout = setTimeout; export const cancelTimeout = clearTimeout; -export const noTimeout = -1; +export const noTimeout: -1 = -1; export function shouldSetTextContent(type: string, props: Props): boolean { // TODO (bvaughn) Revisit this decision. diff --git a/packages/react-reconciler/src/ReactFiber.js b/packages/react-reconciler/src/ReactFiber.js index ac25828400..0af7ffb767 100644 --- a/packages/react-reconciler/src/ReactFiber.js +++ b/packages/react-reconciler/src/ReactFiber.js @@ -522,7 +522,7 @@ export function createHostRootFiber( tag: RootTag, isStrictMode: boolean, ): Fiber { - let mode; + let mode: number; if (disableLegacyMode || tag === ConcurrentRoot) { mode = ConcurrentMode; if (isStrictMode === true) { @@ -551,7 +551,7 @@ export function createFiberFromTypeAndProps( mode: TypeOfMode, lanes: Lanes, ): Fiber { - let fiberTag = FunctionComponent; + let fiberTag: WorkTag = FunctionComponent; // The resolved type is set if we know what the final type will be. I.e. it's not lazy. let resolvedType = type; if (typeof type === 'function') { diff --git a/packages/react-reconciler/src/ReactFiberCommitWork.js b/packages/react-reconciler/src/ReactFiberCommitWork.js index b6716506a0..8689f2eacf 100644 --- a/packages/react-reconciler/src/ReactFiberCommitWork.js +++ b/packages/react-reconciler/src/ReactFiberCommitWork.js @@ -283,6 +283,7 @@ import { untrackNamedViewTransition, } from './ReactFiberDuplicateViewTransitions'; import {markIndicatorHandled} from './ReactFiberRootScheduler'; +import type {Flags} from './ReactFiberFlags'; // Used during the commit phase to track the state of the Offscreen component stack. // Allows us to avoid traversing the return path to find the nearest Offscreen ancestor. @@ -4490,7 +4491,7 @@ export function commitPassiveUnmountEffects(finishedWork: Fiber): void { // Note that MaySuspendCommit and ShouldSuspendCommit also includes named // ViewTransitions so that we know to also visit those to collect appearing // pairs. -let suspenseyCommitFlag = ShouldSuspendCommit; +let suspenseyCommitFlag: Flags = ShouldSuspendCommit; export function accumulateSuspenseyCommit( finishedWork: Fiber, committedLanes: Lanes, diff --git a/packages/react-reconciler/src/ReactFiberCompleteWork.js b/packages/react-reconciler/src/ReactFiberCompleteWork.js index 645eaeb50a..404fd86c9d 100644 --- a/packages/react-reconciler/src/ReactFiberCompleteWork.js +++ b/packages/react-reconciler/src/ReactFiberCompleteWork.js @@ -190,6 +190,7 @@ import { popRootMarkerInstance, } from './ReactFiberTracingMarkerComponent'; import {suspendCommit} from './ReactFiberThenable'; +import type {Flags} from './ReactFiberFlags'; /** * Tag the fiber with an update effect. This turns a Placement into @@ -780,7 +781,7 @@ function bubbleProperties(completedWork: Fiber) { completedWork.alternate.child === completedWork.child; let newChildLanes: Lanes = NoLanes; - let subtreeFlags = NoFlags; + let subtreeFlags: Flags = NoFlags; if (!didBailout) { // Bubble up the earliest expiration time. diff --git a/packages/react-test-renderer/src/ReactFiberConfigTestHost.js b/packages/react-test-renderer/src/ReactFiberConfigTestHost.js index 05fa9dffa3..c0fed8ca9b 100644 --- a/packages/react-test-renderer/src/ReactFiberConfigTestHost.js +++ b/packages/react-test-renderer/src/ReactFiberConfigTestHost.js @@ -268,7 +268,7 @@ export const warnsIfNotActing = true; export const scheduleTimeout = setTimeout; export const cancelTimeout = clearTimeout; -export const noTimeout = -1; +export const noTimeout: -1 = -1; // ------------------- // Mutation diff --git a/packages/react-test-renderer/src/ReactTestRenderer.js b/packages/react-test-renderer/src/ReactTestRenderer.js index dd5b4e8c97..e843417e83 100644 --- a/packages/react-test-renderer/src/ReactTestRenderer.js +++ b/packages/react-test-renderer/src/ReactTestRenderer.js @@ -61,6 +61,7 @@ import { } from 'shared/ReactFeatureFlags'; import noop from 'shared/noop'; +import type {WorkTag} from 'react-reconciler/src/ReactWorkTags'; const defaultOnDefaultTransitionIndicator: () => void | (() => void) = noop; @@ -244,7 +245,7 @@ function toTree(node: null | Fiber): $FlowFixMe { } } -const validWrapperTypes = new Set([ +const validWrapperTypes: Set = new Set([ FunctionComponent, ClassComponent, HostComponent, diff --git a/packages/react/index.development.js b/packages/react/index.development.js index 0f7703e511..b4c0632b7f 100644 --- a/packages/react/index.development.js +++ b/packages/react/index.development.js @@ -19,7 +19,6 @@ export type Portal = React$Portal; export type ElementProps = React$ElementProps; export type ElementConfig = React$ElementConfig; export type ElementRef = React$ElementRef; -export type Config = React$Config; export type ChildrenArray<+T> = $ReadOnlyArray> | T; // Export all exports so that they're available in tests. diff --git a/packages/react/index.js b/packages/react/index.js index 5228ae8868..4eb8f2dfc2 100644 --- a/packages/react/index.js +++ b/packages/react/index.js @@ -21,7 +21,6 @@ export type RefSetter<-I> = React$RefSetter; export type ElementProps = React$ElementProps; export type ElementConfig = React$ElementConfig; export type ElementRef = React$ElementRef; -export type Config = React$Config; export type ChildrenArray<+T> = $ReadOnlyArray> | T; export { diff --git a/packages/scheduler/src/forks/Scheduler.js b/packages/scheduler/src/forks/Scheduler.js index 8b34f26bd0..dcbcc2cf52 100644 --- a/packages/scheduler/src/forks/Scheduler.js +++ b/packages/scheduler/src/forks/Scheduler.js @@ -83,7 +83,7 @@ var timerQueue: Array = []; var taskIdCounter = 1; var currentTask = null; -var currentPriorityLevel = NormalPriority; +var currentPriorityLevel: PriorityLevel = NormalPriority; // This is set while performing work, to prevent re-entrance. var isPerformingWork = false; @@ -441,7 +441,7 @@ let taskTimeoutID: TimeoutID = (-1: any); // thread, like user events. By default, it yields multiple times per frame. // It does not attempt to align with frame boundaries, since most tasks don't // need to be frame aligned; for those that do, use requestAnimationFrame. -let frameInterval = frameYieldMs; +let frameInterval: number = frameYieldMs; let startTime = -1; function shouldYieldToHost(): boolean { diff --git a/packages/scheduler/src/forks/SchedulerMock.js b/packages/scheduler/src/forks/SchedulerMock.js index b638bf1eaf..a362b23e1b 100644 --- a/packages/scheduler/src/forks/SchedulerMock.js +++ b/packages/scheduler/src/forks/SchedulerMock.js @@ -70,7 +70,7 @@ var timerQueue: Array = []; var taskIdCounter = 1; var currentTask = null; -var currentPriorityLevel = NormalPriority; +var currentPriorityLevel: PriorityLevel = NormalPriority; // This is set while performing work, to prevent re-entrance. var isPerformingWork = false; diff --git a/packages/scheduler/src/forks/SchedulerNative.js b/packages/scheduler/src/forks/SchedulerNative.js index 33f9ae3313..1acee1f5f4 100644 --- a/packages/scheduler/src/forks/SchedulerNative.js +++ b/packages/scheduler/src/forks/SchedulerNative.js @@ -10,17 +10,18 @@ import * as Scheduler from './Scheduler'; import type {Callback, Task} from './Scheduler'; import type {PriorityLevel} from '../SchedulerPriorities'; +import typeof * as PriorityLevels from '../SchedulerPriorities'; import typeof * as SchedulerExportsType from './Scheduler'; import typeof * as SchedulerNativeExportsType from './SchedulerNative'; // This type is supposed to reflect the actual methods and arguments currently supported by the C++ implementation: // https://github.com/facebook/react-native/blob/main/packages/react-native/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.cpp type NativeSchedulerType = { - unstable_ImmediatePriority: PriorityLevel, - unstable_UserBlockingPriority: PriorityLevel, - unstable_NormalPriority: PriorityLevel, - unstable_IdlePriority: PriorityLevel, - unstable_LowPriority: PriorityLevel, + unstable_ImmediatePriority: PriorityLevels['ImmediatePriority'], + unstable_UserBlockingPriority: PriorityLevels['UserBlockingPriority'], + unstable_NormalPriority: PriorityLevels['NormalPriority'], + unstable_IdlePriority: PriorityLevels['IdlePriority'], + unstable_LowPriority: PriorityLevels['LowPriority'], unstable_scheduleCallback: ( priorityLevel: PriorityLevel, callback: Callback, @@ -34,27 +35,27 @@ type NativeSchedulerType = { declare const nativeRuntimeScheduler: void | NativeSchedulerType; -export const unstable_UserBlockingPriority: PriorityLevel = +export const unstable_UserBlockingPriority: PriorityLevels['UserBlockingPriority'] = typeof nativeRuntimeScheduler !== 'undefined' ? nativeRuntimeScheduler.unstable_UserBlockingPriority : Scheduler.unstable_UserBlockingPriority; -export const unstable_NormalPriority: PriorityLevel = +export const unstable_NormalPriority: PriorityLevels['NormalPriority'] = typeof nativeRuntimeScheduler !== 'undefined' ? nativeRuntimeScheduler.unstable_NormalPriority : Scheduler.unstable_NormalPriority; -export const unstable_IdlePriority: PriorityLevel = +export const unstable_IdlePriority: PriorityLevels['IdlePriority'] = typeof nativeRuntimeScheduler !== 'undefined' ? nativeRuntimeScheduler.unstable_IdlePriority : Scheduler.unstable_IdlePriority; -export const unstable_LowPriority: PriorityLevel = +export const unstable_LowPriority: PriorityLevels['LowPriority'] = typeof nativeRuntimeScheduler !== 'undefined' ? nativeRuntimeScheduler.unstable_LowPriority : Scheduler.unstable_LowPriority; -export const unstable_ImmediatePriority: PriorityLevel = +export const unstable_ImmediatePriority: PriorityLevels['ImmediatePriority'] = typeof nativeRuntimeScheduler !== 'undefined' ? nativeRuntimeScheduler.unstable_ImmediatePriority : Scheduler.unstable_ImmediatePriority; diff --git a/packages/scheduler/src/forks/SchedulerPostTask.js b/packages/scheduler/src/forks/SchedulerPostTask.js index 7465c38b92..e72df5f364 100644 --- a/packages/scheduler/src/forks/SchedulerPostTask.js +++ b/packages/scheduler/src/forks/SchedulerPostTask.js @@ -55,7 +55,7 @@ export const unstable_now = getCurrentTime; const yieldInterval = 5; let deadline = 0; -let currentPriorityLevel_DEPRECATED = NormalPriority; +let currentPriorityLevel_DEPRECATED: PriorityLevel = NormalPriority; // Always yield at the end of the frame. export function unstable_shouldYield(): boolean { diff --git a/packages/shared/ReactFeatureFlags.js b/packages/shared/ReactFeatureFlags.js index 5dd612837a..fb997f239a 100644 --- a/packages/shared/ReactFeatureFlags.js +++ b/packages/shared/ReactFeatureFlags.js @@ -22,7 +22,7 @@ // when it rolls out to prod. We should remove these as soon as possible. // ----------------------------------------------------------------------------- -export const enableHydrationLaneScheduling = true; +export const enableHydrationLaneScheduling: boolean = true; // ----------------------------------------------------------------------------- // Land or remove (moderate effort) @@ -32,7 +32,7 @@ export const enableHydrationLaneScheduling = true; // ----------------------------------------------------------------------------- // Need to remove didTimeout argument from Scheduler before landing -export const disableSchedulerTimeoutInWorkLoop = false; +export const disableSchedulerTimeoutInWorkLoop: boolean = false; // ----------------------------------------------------------------------------- // Slated for removal in the future (significant effort) @@ -49,16 +49,16 @@ export const disableSchedulerTimeoutInWorkLoop = false; // hydrated or deleted. // // This will eventually be replaced by the Transition Tracing proposal. -export const enableSuspenseCallback = false; +export const enableSuspenseCallback: boolean = false; // Experimental Scope support. -export const enableScopeAPI = false; +export const enableScopeAPI: boolean = false; // Experimental Create Event Handle API. -export const enableCreateEventHandleAPI = false; +export const enableCreateEventHandleAPI: boolean = false; // Support legacy Primer support on internal FB www -export const enableLegacyFBSupport = false; +export const enableLegacyFBSupport: boolean = false; // ----------------------------------------------------------------------------- // Ongoing experiments @@ -69,10 +69,10 @@ export const enableLegacyFBSupport = false; // Yield to the browser event loop and not just the scheduler event loop before passive effects. // Fix gated tests that fail with this flag enabled before turning it back on. -export const enableYieldingBeforePassive = false; +export const enableYieldingBeforePassive: boolean = false; // Experiment to intentionally yield less to block high framerate animations. -export const enableThrottledScheduling = false; +export const enableThrottledScheduling: boolean = false; export const enableLegacyCache = __EXPERIMENTAL__; @@ -90,7 +90,7 @@ export const enableGestureTransition = __EXPERIMENTAL__; export const enableScrollEndPolyfill = __EXPERIMENTAL__; -export const enableSuspenseyImages = false; +export const enableSuspenseyImages: boolean = false; export const enableFizzBlockingRender = __EXPERIMENTAL__; // rel="expect" @@ -103,20 +103,20 @@ export const enableDefaultTransitionIndicator = __EXPERIMENTAL__; /** * Switches Fiber creation to a simple object instead of a constructor. */ -export const enableObjectFiber = false; +export const enableObjectFiber: boolean = false; -export const enableTransitionTracing = false; +export const enableTransitionTracing: boolean = false; // FB-only usage. The new API has different semantics. -export const enableLegacyHidden = false; +export const enableLegacyHidden: boolean = false; // Enables unstable_avoidThisFallback feature in Fiber -export const enableSuspenseAvoidThisFallback = false; +export const enableSuspenseAvoidThisFallback: boolean = false; export const enableCPUSuspense = __EXPERIMENTAL__; // Test this at Meta before enabling. -export const enableNoCloningMemoCache = false; +export const enableNoCloningMemoCache: boolean = false; export const enableUseEffectEventHook = __EXPERIMENTAL__; @@ -125,22 +125,22 @@ export const enableUseEffectEventHook = __EXPERIMENTAL__; // (handled with an MutationObserver) instead of inline-scripts export const enableFizzExternalRuntime = __EXPERIMENTAL__; -export const alwaysThrottleRetries = true; +export const alwaysThrottleRetries: boolean = true; -export const passChildrenWhenCloningPersistedNodes = false; +export const passChildrenWhenCloningPersistedNodes: boolean = false; /** * Enables a new Fiber flag used in persisted mode to reduce the number * of cloned host components. */ -export const enablePersistedModeClonedFlag = false; +export const enablePersistedModeClonedFlag: boolean = false; -export const enableEagerAlternateStateNodeCleanup = true; +export const enableEagerAlternateStateNodeCleanup: boolean = true; /** * Enables an expiration time for retry lanes to avoid starvation. */ -export const enableRetryLaneExpiration = false; +export const enableRetryLaneExpiration: boolean = false; export const retryLaneExpirationMs = 5000; export const syncLaneExpirationMs = 250; export const transitionLaneExpirationMs = 5000; @@ -149,7 +149,7 @@ export const transitionLaneExpirationMs = 5000; * Enables a new error detection for infinite render loops from updates caused * by setState or similar outside of the component owning the state. */ -export const enableInfiniteRenderLoopDetection = false; +export const enableInfiniteRenderLoopDetection: boolean = false; export const enableFragmentRefs = __EXPERIMENTAL__; @@ -166,35 +166,35 @@ export const enableFragmentRefs = __EXPERIMENTAL__; // const __NEXT_MAJOR__ = __EXPERIMENTAL__; // Renames the internal symbol for elements since they have changed signature/constructor -export const renameElementSymbol = true; +export const renameElementSymbol: boolean = true; /** * Enables a fix to run insertion effect cleanup on hidden subtrees. */ -export const enableHiddenSubtreeInsertionEffectCleanup = false; +export const enableHiddenSubtreeInsertionEffectCleanup: boolean = false; /** * Removes legacy style context defined using static `contextTypes` and consumed with static `childContextTypes`. */ -export const disableLegacyContext = true; +export const disableLegacyContext: boolean = true; /** * Removes legacy style context just from function components. */ -export const disableLegacyContextForFunctionComponents = true; +export const disableLegacyContextForFunctionComponents: boolean = true; // Enable the moveBefore() alternative to insertBefore(). This preserves states of moves. -export const enableMoveBefore = false; +export const enableMoveBefore: boolean = false; // Disabled caching behavior of `react/cache` in client runtimes. -export const disableClientCache = true; +export const disableClientCache: boolean = true; // Warn on any usage of ReactTestRenderer -export const enableReactTestRendererWarning = true; +export const enableReactTestRendererWarning: boolean = true; // Disables legacy mode // This allows us to land breaking changes to remove legacy mode APIs in experimental builds // before removing them in stable in the next Major -export const disableLegacyMode = true; +export const disableLegacyMode: boolean = true; // ----------------------------------------------------------------------------- // Chopping Block @@ -212,16 +212,16 @@ export const disableLegacyMode = true; // Disable support for comment nodes as React DOM containers. Already disabled // in open source, but www codebase still relies on it. Need to remove. -export const disableCommentsAsDOMContainers = true; +export const disableCommentsAsDOMContainers: boolean = true; -export const enableTrustedTypesIntegration = false; +export const enableTrustedTypesIntegration: boolean = false; // Prevent the value and checked attributes from syncing with their related // DOM properties -export const disableInputAttributeSyncing = false; +export const disableInputAttributeSyncing: boolean = false; // Disables children for