From 5c7d6c38917a72af2e758ef59793fde553d86499 Mon Sep 17 00:00:00 2001 From: Joe Savona Date: Mon, 1 Apr 2024 12:29:16 -0700 Subject: [PATCH 1/2] [be] Remove unused, experimental getCacheSignal API --- .../react-reconciler/src/ReactFiberCache.js | 9 --------- .../src/ReactInternalTypes.js | 1 - packages/react-server/src/ReactFizzCache.js | 5 ----- .../src/flight/ReactFlightServerCache.js | 13 ------------ .../src/ReactSuspenseTestUtils.js | 5 ----- packages/react/index.classic.fb.js | 1 - packages/react/index.experimental.js | 1 - packages/react/index.js | 2 -- packages/react/index.modern.fb.js | 1 - packages/react/src/ReactClient.js | 2 -- packages/react/src/ReactFetch.js | 8 ++------ packages/react/src/ReactHooks.js | 20 ------------------- .../react/src/ReactServer.experimental.js | 2 -- 13 files changed, 2 insertions(+), 68 deletions(-) diff --git a/packages/react-reconciler/src/ReactFiberCache.js b/packages/react-reconciler/src/ReactFiberCache.js index 5e03bb1a4087..3f465d8b8837 100644 --- a/packages/react-reconciler/src/ReactFiberCache.js +++ b/packages/react-reconciler/src/ReactFiberCache.js @@ -14,14 +14,6 @@ import {enableCache} from 'shared/ReactFeatureFlags'; import {readContext} from './ReactFiberNewContext'; import {CacheContext} from './ReactFiberCacheComponent'; -function getCacheSignal(): AbortSignal { - if (!enableCache) { - throw new Error('Not implemented.'); - } - const cache: Cache = readContext(CacheContext); - return cache.controller.signal; -} - function getCacheForType(resourceType: () => T): T { if (!enableCache) { throw new Error('Not implemented.'); @@ -36,6 +28,5 @@ function getCacheForType(resourceType: () => T): T { } export const DefaultCacheDispatcher: CacheDispatcher = { - getCacheSignal, getCacheForType, }; diff --git a/packages/react-reconciler/src/ReactInternalTypes.js b/packages/react-reconciler/src/ReactInternalTypes.js index dac96a66dc84..3b82dc40c828 100644 --- a/packages/react-reconciler/src/ReactInternalTypes.js +++ b/packages/react-reconciler/src/ReactInternalTypes.js @@ -434,6 +434,5 @@ export type Dispatcher = { }; export type CacheDispatcher = { - getCacheSignal: () => AbortSignal, getCacheForType: (resourceType: () => T) => T, }; diff --git a/packages/react-server/src/ReactFizzCache.js b/packages/react-server/src/ReactFizzCache.js index 4de18d4d5563..10ff0ed7c0d1 100644 --- a/packages/react-server/src/ReactFizzCache.js +++ b/packages/react-server/src/ReactFizzCache.js @@ -9,15 +9,10 @@ import type {CacheDispatcher} from 'react-reconciler/src/ReactInternalTypes'; -function getCacheSignal(): AbortSignal { - throw new Error('Not implemented.'); -} - function getCacheForType(resourceType: () => T): T { throw new Error('Not implemented.'); } export const DefaultCacheDispatcher: CacheDispatcher = { - getCacheSignal, getCacheForType, }; diff --git a/packages/react-server/src/flight/ReactFlightServerCache.js b/packages/react-server/src/flight/ReactFlightServerCache.js index d386dbb9f2bb..5c2469a2a986 100644 --- a/packages/react-server/src/flight/ReactFlightServerCache.js +++ b/packages/react-server/src/flight/ReactFlightServerCache.js @@ -11,10 +11,6 @@ import type {CacheDispatcher} from 'react-reconciler/src/ReactInternalTypes'; import {resolveRequest, getCache} from '../ReactFlightServer'; -function createSignal(): AbortSignal { - return new AbortController().signal; -} - function resolveCache(): Map { const request = resolveRequest(); if (request) { @@ -24,15 +20,6 @@ function resolveCache(): Map { } export const DefaultCacheDispatcher: CacheDispatcher = { - getCacheSignal(): AbortSignal { - const cache = resolveCache(); - let entry: AbortSignal | void = (cache.get(createSignal): any); - if (entry === undefined) { - entry = createSignal(); - cache.set(createSignal, entry); - } - return entry; - }, getCacheForType(resourceType: () => T): T { const cache = resolveCache(); let entry: T | void = (cache.get(resourceType): any); diff --git a/packages/react-suspense-test-utils/src/ReactSuspenseTestUtils.js b/packages/react-suspense-test-utils/src/ReactSuspenseTestUtils.js index c851e87a2fd4..1f0c650dec3c 100644 --- a/packages/react-suspense-test-utils/src/ReactSuspenseTestUtils.js +++ b/packages/react-suspense-test-utils/src/ReactSuspenseTestUtils.js @@ -12,14 +12,9 @@ import ReactSharedInternals from 'shared/ReactSharedInternals'; const ReactCurrentCache = ReactSharedInternals.ReactCurrentCache; -function unsupported() { - throw new Error('This feature is not supported by ReactSuspenseTestUtils.'); -} - export function waitForSuspense(fn: () => T): Promise { const cache: Map = new Map(); const testDispatcher: CacheDispatcher = { - getCacheSignal: unsupported, getCacheForType(resourceType: () => R): R { let entry: R | void = (cache.get(resourceType): any); if (entry === undefined) { diff --git a/packages/react/index.classic.fb.js b/packages/react/index.classic.fb.js index 8c670383b6ec..00e6ee8a4077 100644 --- a/packages/react/index.classic.fb.js +++ b/packages/react/index.classic.fb.js @@ -34,7 +34,6 @@ export { unstable_LegacyHidden, unstable_Scope, unstable_SuspenseList, - unstable_getCacheSignal, unstable_getCacheForType, unstable_useCacheRefresh, unstable_useMemoCache, diff --git a/packages/react/index.experimental.js b/packages/react/index.experimental.js index e62e7853c595..a7cb3e3cdf4a 100644 --- a/packages/react/index.experimental.js +++ b/packages/react/index.experimental.js @@ -31,7 +31,6 @@ export { unstable_DebugTracingMode, unstable_Activity, unstable_postpone, - unstable_getCacheSignal, unstable_getCacheForType, unstable_SuspenseList, unstable_useCacheRefresh, diff --git a/packages/react/index.js b/packages/react/index.js index e8f7b107884b..a3bfeca6532d 100644 --- a/packages/react/index.js +++ b/packages/react/index.js @@ -55,8 +55,6 @@ export { unstable_Scope, unstable_SuspenseList, unstable_TracingMarker, - unstable_getCacheSignal, - unstable_getCacheForType, unstable_useCacheRefresh, unstable_useMemoCache, useId, diff --git a/packages/react/index.modern.fb.js b/packages/react/index.modern.fb.js index 671b156214dc..f0b5e0392553 100644 --- a/packages/react/index.modern.fb.js +++ b/packages/react/index.modern.fb.js @@ -33,7 +33,6 @@ export { unstable_Activity, unstable_Scope, unstable_SuspenseList, - unstable_getCacheSignal, unstable_getCacheForType, unstable_useCacheRefresh, unstable_useMemoCache, diff --git a/packages/react/src/ReactClient.js b/packages/react/src/ReactClient.js index 4f9e7cbc0a34..99492359fc7b 100644 --- a/packages/react/src/ReactClient.js +++ b/packages/react/src/ReactClient.js @@ -36,7 +36,6 @@ import {memo} from './ReactMemo'; import {cache} from './ReactCacheClient'; import {postpone} from './ReactPostpone'; import { - getCacheSignal, getCacheForType, useCallback, useContext, @@ -115,7 +114,6 @@ export { REACT_SUSPENSE_LIST_TYPE as unstable_SuspenseList, REACT_LEGACY_HIDDEN_TYPE as unstable_LegacyHidden, REACT_OFFSCREEN_TYPE as unstable_Activity, - getCacheSignal as unstable_getCacheSignal, getCacheForType as unstable_getCacheForType, useCacheRefresh as unstable_useCacheRefresh, use, diff --git a/packages/react/src/ReactFetch.js b/packages/react/src/ReactFetch.js index b9e54169c2d0..31678d9327d5 100644 --- a/packages/react/src/ReactFetch.js +++ b/packages/react/src/ReactFetch.js @@ -51,12 +51,8 @@ if (enableCache && enableFetchInstrumentation) { // We're outside a cached scope. return originalFetch(resource, options); } - if ( - options && - options.signal && - options.signal !== dispatcher.getCacheSignal() - ) { - // If we're passed a signal that is not ours, then we assume that + if (options && options.signal) { + // If we're passed a signal, then we assume that // someone else controls the lifetime of this object and opts out of // caching. It's effectively the opt-out mechanism. // Ideally we should be able to check this on the Request but diff --git a/packages/react/src/ReactHooks.js b/packages/react/src/ReactHooks.js index fada4c9c8c0a..4c102569631f 100644 --- a/packages/react/src/ReactHooks.js +++ b/packages/react/src/ReactHooks.js @@ -43,26 +43,6 @@ function resolveDispatcher() { return ((dispatcher: any): Dispatcher); } -export function getCacheSignal(): AbortSignal { - const dispatcher = ReactCurrentCache.current; - if (!dispatcher) { - // If we have no cache to associate with this call, then we don't know - // its lifetime. We abort early since that's safer than letting it live - // for ever. Unlike just caching which can be a functional noop outside - // of React, these should generally always be associated with some React - // render but we're not limiting quite as much as making it a Hook. - // It's safer than erroring early at runtime. - const controller = new AbortController(); - const reason = new Error( - 'This CacheSignal was requested outside React which means that it is ' + - 'immediately aborted.', - ); - controller.abort(reason); - return controller.signal; - } - return dispatcher.getCacheSignal(); -} - export function getCacheForType(resourceType: () => T): T { const dispatcher = ReactCurrentCache.current; if (!dispatcher) { diff --git a/packages/react/src/ReactServer.experimental.js b/packages/react/src/ReactServer.experimental.js index fb90fd18e7b7..7db8332da9ad 100644 --- a/packages/react/src/ReactServer.experimental.js +++ b/packages/react/src/ReactServer.experimental.js @@ -35,7 +35,6 @@ import { useDebugValue, useMemo, useActionState, - getCacheSignal, getCacheForType, } from './ReactHooks'; import {forwardRef} from './ReactForwardRef'; @@ -78,7 +77,6 @@ export { startTransition, REACT_DEBUG_TRACING_MODE_TYPE as unstable_DebugTracingMode, REACT_SUSPENSE_TYPE as unstable_SuspenseList, - getCacheSignal as unstable_getCacheSignal, getCacheForType as unstable_getCacheForType, postpone as unstable_postpone, useId, From 084402b71d227ce5fc3bf05ab579c2e653489217 Mon Sep 17 00:00:00 2001 From: Joe Savona Date: Mon, 1 Apr 2024 12:37:55 -0700 Subject: [PATCH 2/2] fix accidental removal of other export --- packages/react/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/react/index.js b/packages/react/index.js index a3bfeca6532d..ba3a705cac28 100644 --- a/packages/react/index.js +++ b/packages/react/index.js @@ -55,6 +55,7 @@ export { unstable_Scope, unstable_SuspenseList, unstable_TracingMarker, + unstable_getCacheForType, unstable_useCacheRefresh, unstable_useMemoCache, useId,