From 478a83a4ab51266a75ea65d6d0d377974c42b3f6 Mon Sep 17 00:00:00 2001 From: Sebastian Markbage Date: Thu, 26 Sep 2024 13:24:46 -0700 Subject: [PATCH] Disable "use cache" outside of dynamicIO --- packages/next/src/build/webpack/plugins/define-env-plugin.ts | 1 + packages/next/src/server/use-cache/use-cache-wrapper.ts | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/packages/next/src/build/webpack/plugins/define-env-plugin.ts b/packages/next/src/build/webpack/plugins/define-env-plugin.ts index 854c788193f03..1f583b7e53bbc 100644 --- a/packages/next/src/build/webpack/plugins/define-env-plugin.ts +++ b/packages/next/src/build/webpack/plugins/define-env-plugin.ts @@ -183,6 +183,7 @@ export function getDefineEnv({ config.devIndicators.appIsrStatus ), 'process.env.__NEXT_PPR': checkIsAppPPREnabled(config.experimental.ppr), + 'process.env.__NEXT_DYNAMIC_IO': !!config.experimental.dynamicIO, 'process.env.__NEXT_AFTER': config.experimental.after ?? false, 'process.env.NEXT_DEPLOYMENT_ID': config.deploymentId || false, 'process.env.__NEXT_FETCH_CACHE_KEY_PREFIX': fetchCacheKeyPrefix ?? '', diff --git a/packages/next/src/server/use-cache/use-cache-wrapper.ts b/packages/next/src/server/use-cache/use-cache-wrapper.ts index 5cec14e907507..0ea53e787e9f8 100644 --- a/packages/next/src/server/use-cache/use-cache-wrapper.ts +++ b/packages/next/src/server/use-cache/use-cache-wrapper.ts @@ -160,6 +160,11 @@ async function generateCacheEntry( } export function cache(kind: string, id: string, fn: any) { + if (!process.env.__NEXT_DYNAMIC_IO) { + throw new Error( + '"use cache" is only available with the experimental.dynamicIO config.' + ) + } const cacheHandler = cacheHandlerMap.get(kind) if (cacheHandler === undefined) { throw new Error('Unknown cache handler: ' + kind)