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..8ccd4f02 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(