From 39096632842b265a4f9d0d0a972245fa279293a4 Mon Sep 17 00:00:00 2001 From: Victor Berchet Date: Tue, 9 Sep 2025 12:39:31 +0200 Subject: [PATCH 1/2] fix: detection of cache purge --- .changeset/tricky-monkeys-wear.md | 5 +++++ examples/e2e/app-router/open-next.config.ts | 1 - .../cloudflare/src/api/overrides/cache-purge/index.ts | 2 ++ .../api/overrides/incremental-cache/regional-cache.ts | 9 +++++++-- 4 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 .changeset/tricky-monkeys-wear.md diff --git a/.changeset/tricky-monkeys-wear.md b/.changeset/tricky-monkeys-wear.md new file mode 100644 index 00000000..f285cb6a --- /dev/null +++ b/.changeset/tricky-monkeys-wear.md @@ -0,0 +1,5 @@ +--- +"@opennextjs/cloudflare": patch +--- + +fix: detection of cache purge diff --git a/examples/e2e/app-router/open-next.config.ts b/examples/e2e/app-router/open-next.config.ts index 7d3346c1..a7c62baf 100644 --- a/examples/e2e/app-router/open-next.config.ts +++ b/examples/e2e/app-router/open-next.config.ts @@ -3,7 +3,6 @@ import r2IncrementalCache from "@opennextjs/cloudflare/overrides/incremental-cac import shardedTagCache from "@opennextjs/cloudflare/overrides/tag-cache/do-sharded-tag-cache"; import doQueue from "@opennextjs/cloudflare/overrides/queue/do-queue"; import queueCache from "@opennextjs/cloudflare/overrides/queue/queue-cache"; -import { purgeCache } from "@opennextjs/cloudflare/overrides/cache-purge/index"; export default defineCloudflareConfig({ incrementalCache: r2IncrementalCache, diff --git a/packages/cloudflare/src/api/overrides/cache-purge/index.ts b/packages/cloudflare/src/api/overrides/cache-purge/index.ts index cde4206c..f8268361 100644 --- a/packages/cloudflare/src/api/overrides/cache-purge/index.ts +++ b/packages/cloudflare/src/api/overrides/cache-purge/index.ts @@ -31,3 +31,5 @@ export const purgeCache = ({ type = "direct" }: PurgeOptions) => { }, } satisfies CDNInvalidationHandler; }; + +export default purgeCache; diff --git a/packages/cloudflare/src/api/overrides/incremental-cache/regional-cache.ts b/packages/cloudflare/src/api/overrides/incremental-cache/regional-cache.ts index a2a98ba9..729a1e4e 100644 --- a/packages/cloudflare/src/api/overrides/incremental-cache/regional-cache.ts +++ b/packages/cloudflare/src/api/overrides/incremental-cache/regional-cache.ts @@ -81,8 +81,13 @@ class RegionalCache implements IncrementalCache { } // Otherwise we default to whether the automatic cache purging is enabled or not - const hasAutomaticCachePurging = !!getCloudflareContext().env.NEXT_CACHE_DO_PURGE; - return hasAutomaticCachePurging; + return this.#hasAutomaticCachePurging; + } + + get #hasAutomaticCachePurging() { + const cdnInvalidation = globalThis.openNextConfig.default?.override?.cdnInvalidation; + + return !(cdnInvalidation === undefined || cdnInvalidation === "dummy"); } async get( From 6cc8736476670b5ece0033ca8861cc2429d38296 Mon Sep 17 00:00:00 2001 From: Victor Berchet Date: Tue, 9 Sep 2025 12:43:21 +0200 Subject: [PATCH 2/2] fixup! readability --- .../src/api/overrides/incremental-cache/regional-cache.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cloudflare/src/api/overrides/incremental-cache/regional-cache.ts b/packages/cloudflare/src/api/overrides/incremental-cache/regional-cache.ts index 729a1e4e..8ccd4f02 100644 --- a/packages/cloudflare/src/api/overrides/incremental-cache/regional-cache.ts +++ b/packages/cloudflare/src/api/overrides/incremental-cache/regional-cache.ts @@ -87,7 +87,7 @@ class RegionalCache implements IncrementalCache { get #hasAutomaticCachePurging() { const cdnInvalidation = globalThis.openNextConfig.default?.override?.cdnInvalidation; - return !(cdnInvalidation === undefined || cdnInvalidation === "dummy"); + return cdnInvalidation !== undefined && cdnInvalidation !== "dummy"; } async get(