From bc1d2436b68e40b9ef23d6c01f1110b0760cf8da Mon Sep 17 00:00:00 2001 From: Victor Berchet Date: Tue, 3 Jun 2025 13:01:57 +0200 Subject: [PATCH 1/2] Add the `routePreloadingBehavior` to the options of `defineCloudflareConfig` --- .changeset/weak-maps-dress.md | 7 +++++++ packages/cloudflare/src/api/config.ts | 21 +++++++++++++++++++-- 2 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 .changeset/weak-maps-dress.md diff --git a/.changeset/weak-maps-dress.md b/.changeset/weak-maps-dress.md new file mode 100644 index 00000000..5d6471fe --- /dev/null +++ b/.changeset/weak-maps-dress.md @@ -0,0 +1,7 @@ +--- +"@opennextjs/cloudflare": minor +--- + +Add the `routePreloadingBehavior` to the options of `defineCloudflareConfig`. + +The default is set to "none" as other values might increase CPU usage on cold starts. diff --git a/packages/cloudflare/src/api/config.ts b/packages/cloudflare/src/api/config.ts index aadc50d2..74ea61f6 100644 --- a/packages/cloudflare/src/api/config.ts +++ b/packages/cloudflare/src/api/config.ts @@ -3,6 +3,7 @@ import { BaseOverride, LazyLoadedOverride, OpenNextConfig as AwsOpenNextConfig, + type RoutePreloadingBehavior, } from "@opennextjs/aws/types/open-next"; import type { CDNInvalidationHandler, @@ -45,6 +46,15 @@ export type CloudflareOverrides = { * @default false */ enableCacheInterception?: boolean; + + /** + * Set the route preloading behavior. + * + * Using a value other than "none" can result in higher CPU usage on cold starts. + * + * @default "none" + */ + routePreloadingBehavior?: RoutePreloadingBehavior; }; /** @@ -54,7 +64,14 @@ export type CloudflareOverrides = { * @returns the OpenNext configuration object */ export function defineCloudflareConfig(config: CloudflareOverrides = {}): OpenNextConfig { - const { incrementalCache, tagCache, queue, cachePurge, enableCacheInterception = false } = config; + const { + incrementalCache, + tagCache, + queue, + cachePurge, + enableCacheInterception = false, + routePreloadingBehavior = "none", + } = config; return { default: { @@ -67,7 +84,7 @@ export function defineCloudflareConfig(config: CloudflareOverrides = {}): OpenNe queue: resolveQueue(queue), cdnInvalidation: resolveCdnInvalidation(cachePurge), }, - routePreloadingBehavior: "withWaitUntil", + routePreloadingBehavior, }, // node:crypto is used to compute cache keys edgeExternals: ["node:crypto"], From 16417c4a83884e0d5fabcf6b5f6bf830216e4d47 Mon Sep 17 00:00:00 2001 From: Victor Berchet Date: Tue, 3 Jun 2025 13:04:54 +0200 Subject: [PATCH 2/2] fixup! formatting --- packages/cloudflare/src/api/config.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/cloudflare/src/api/config.ts b/packages/cloudflare/src/api/config.ts index 74ea61f6..c92365da 100644 --- a/packages/cloudflare/src/api/config.ts +++ b/packages/cloudflare/src/api/config.ts @@ -48,10 +48,8 @@ export type CloudflareOverrides = { enableCacheInterception?: boolean; /** - * Set the route preloading behavior. - * + * Route preloading behavior. * Using a value other than "none" can result in higher CPU usage on cold starts. - * * @default "none" */ routePreloadingBehavior?: RoutePreloadingBehavior;