From c23f9577ae4b980f450e2d05fecf83335ff7e0d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Markb=C3=A5ge?= Date: Thu, 26 Sep 2024 19:21:23 -0400 Subject: [PATCH] Disable "use cache" outside of dynamicIO (#70538) --- 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 7ae8085595efc..0ee4d42648e66 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)