fix(cloudflare): serve version.json as static asset

Avoid Workers billing for /version.json by removing worker-first routing and generating static _headers rules during manifest build.
This commit is contained in:
Shantur Rathore
2026-01-22 18:05:01 +00:00
parent c01846f7fd
commit b25fb0073e
3 changed files with 9 additions and 22 deletions

View File

@@ -2,28 +2,8 @@ export interface Env {
ASSETS: { fetch: (request: Request) => Promise<Response> }
}
function withHeader(response: Response, key: string, value: string): Response {
const headers = new Headers(response.headers)
headers.set(key, value)
return new Response(response.body, {
status: response.status,
statusText: response.statusText,
headers,
})
}
export default {
async fetch(request: Request, env: Env): Promise<Response> {
const url = new URL(request.url)
if (url.pathname === "/version.json") {
const assetResponse = await env.ASSETS.fetch(request)
// Ensure this stays fresh; the server uses it on startup.
const withCache = withHeader(assetResponse, "Cache-Control", "no-cache")
return withHeader(withCache, "Content-Type", "application/json; charset=utf-8")
}
return new Response("Not found", { status: 404 })
return env.ASSETS.fetch(request)
},
}