From 0009f891f0359c0088dd157606427026ba2af6d9 Mon Sep 17 00:00:00 2001 From: James Opstad <13586373+jamesopstad@users.noreply.github.com> Date: Thu, 27 Aug 2026 21:20:04 +0100 Subject: [PATCH] Stabilise the prerenderWorker plugin option --- .../playground/prerendering/vite.config.ts | 28 +++++++++---------- .../__tests__/resolve-plugin-config.spec.ts | 26 ++++++++--------- .../src/plugin-config.ts | 6 ++-- 3 files changed, 27 insertions(+), 33 deletions(-) diff --git a/packages/vite-plugin-cloudflare/playground/prerendering/vite.config.ts b/packages/vite-plugin-cloudflare/playground/prerendering/vite.config.ts index 11d2012111d..c55f055c2df 100644 --- a/packages/vite-plugin-cloudflare/playground/prerendering/vite.config.ts +++ b/packages/vite-plugin-cloudflare/playground/prerendering/vite.config.ts @@ -13,22 +13,20 @@ export function createConfig(assetsOnly: boolean) { persistState: false, viteEnvironment: { name: "ssr" }, assetsOnly: () => assetsOnly, - experimental: { - prerenderWorker: { - config(_, { entryWorkerConfig }) { - return { - ...entryWorkerConfig, - name: "prerender", - entrypoint: "./src/prerender.ts", - env: { - ...entryWorkerConfig.env, - AUXILIARY_WORKER: { - type: "worker", - worker: "auxiliary-worker", - }, + prerenderWorker: { + config(_, { entryWorkerConfig }) { + return { + ...entryWorkerConfig, + name: "prerender", + entrypoint: "./src/prerender.ts", + env: { + ...entryWorkerConfig.env, + AUXILIARY_WORKER: { + type: "worker", + worker: "auxiliary-worker", }, - }; - }, + }, + }; }, }, }), diff --git a/packages/vite-plugin-cloudflare/src/__tests__/resolve-plugin-config.spec.ts b/packages/vite-plugin-cloudflare/src/__tests__/resolve-plugin-config.spec.ts index 817dd79f13b..c56d6ed4714 100644 --- a/packages/vite-plugin-cloudflare/src/__tests__/resolve-plugin-config.spec.ts +++ b/packages/vite-plugin-cloudflare/src/__tests__/resolve-plugin-config.spec.ts @@ -388,12 +388,10 @@ describe("resolvePluginConfig", () => { writeSource("src/prerender.ts"); const result = (await resolvePluginConfig( { - experimental: { - prerenderWorker: { - config: (config, { entryWorkerConfig }) => ({ - name: `${config.name}-${entryWorkerConfig.compatibilityDate}`, - }), - }, + prerenderWorker: { + config: (config, { entryWorkerConfig }) => ({ + name: `${config.name}-${entryWorkerConfig.compatibilityDate}`, + }), }, }, { root }, @@ -414,15 +412,13 @@ describe("resolvePluginConfig", () => { writeSource("src/prerender.ts"); const result = (await resolvePluginConfig( { - experimental: { - prerenderWorker: { - config(_, { entryWorkerConfig }) { - return { - ...entryWorkerConfig, - name: "prerender-worker", - entrypoint: "./src/prerender.ts", - }; - }, + prerenderWorker: { + config(_, { entryWorkerConfig }) { + return { + ...entryWorkerConfig, + name: "prerender-worker", + entrypoint: "./src/prerender.ts", + }; }, }, }, diff --git a/packages/vite-plugin-cloudflare/src/plugin-config.ts b/packages/vite-plugin-cloudflare/src/plugin-config.ts index 031a32ae08d..23583d8152e 100644 --- a/packages/vite-plugin-cloudflare/src/plugin-config.ts +++ b/packages/vite-plugin-cloudflare/src/plugin-config.ts @@ -90,8 +90,6 @@ interface ResolvedTypeGenerationOptions { interface Experimental { /** Experimental support for handling the _headers and _redirects files during Vite dev mode. */ headersAndRedirectsDevModeSupport?: boolean; - /** Experimental support for a dedicated prerender Worker. */ - prerenderWorker?: PrerenderWorkerConfig; } function normalizeTypes( @@ -125,6 +123,8 @@ export interface PluginConfig extends EntryWorkerConfig { * an override here. The key is used as the Vite environment name by default. */ auxiliaryWorkers?: Record; + /** Configuration for a dedicated prerender Worker. */ + prerenderWorker?: PrerenderWorkerConfig; persistState?: PersistState; inspectorPort?: number | false; remoteBindings?: boolean; @@ -432,7 +432,7 @@ export async function resolvePluginConfig( const environmentNameToWorkerMap = new Map(); const environmentNameToChildEnvironmentNamesMap = new Map(); - const prerenderWorkerConfig = pluginConfig.experimental?.prerenderWorker; + const prerenderWorkerConfig = pluginConfig.prerenderWorker; const exportedPrerenderWorkerConfig = parsedConfig.prerender; const prerenderWorkerBaseConfig = exportedPrerenderWorkerConfig?.type === "worker"