Skip to content

Commit b64eb83

Browse files
Lazy load Cloudflare platform proxy (#13016)
1 parent 95fb4ae commit b64eb83

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed

.changeset/slow-coats-arrive.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@react-router/dev": patch
3+
---
4+
5+
Lazy load Cloudflare platform proxy on first dev server request when using the `cloudflareDevProxy` Vite plugin to avoid creating unnecessary workerd processes

packages/react-router-dev/vite/cloudflare-dev-proxy.ts

+10-6
Original file line numberDiff line numberDiff line change
@@ -108,12 +108,15 @@ export const cloudflareDevProxyVitePlugin = <Env, Cf extends CfProperties>(
108108
}
109109
},
110110
configureServer: async (viteDevServer) => {
111-
let { getPlatformProxy } = await importWrangler();
112-
// Do not include `dispose` in Cloudflare context
113-
let { dispose, ...cloudflare } = await getPlatformProxy<Env, Cf>(
114-
restOptions
115-
);
116-
let context = { cloudflare };
111+
let context: Awaited<ReturnType<typeof getContext>>;
112+
let getContext = async () => {
113+
let { getPlatformProxy } = await importWrangler();
114+
// Do not include `dispose` in Cloudflare context
115+
let { dispose, ...cloudflare } = await getPlatformProxy<Env, Cf>(
116+
restOptions
117+
);
118+
return { cloudflare };
119+
};
117120
return () => {
118121
if (!viteDevServer.config.server.middlewareMode) {
119122
viteDevServer.middlewares.use(async (nodeReq, nodeRes, next) => {
@@ -124,6 +127,7 @@ export const cloudflareDevProxyVitePlugin = <Env, Cf extends CfProperties>(
124127

125128
let handler = createRequestHandler(build, "development");
126129
let req = fromNodeRequest(nodeReq, nodeRes);
130+
context ??= await getContext();
127131
let loadContext = getLoadContext
128132
? await getLoadContext({ request: req, context })
129133
: context;

0 commit comments

Comments
 (0)