INNER CODE UNIT · TypeScript
handleManifest
harvard-edge/cs249r_book · interviews/staffml-vault-worker/src/index.ts:234
async function handleManifest(env: Env, req: Request): Promise<Response> {
const origin = req.headers.get("Origin");
const manifest = await getManifest(env);
const etag = `"manifest:${manifest.release_id}:${manifest.release_hash.slice(0, 16)}"`;
if (req.headers.get("If-None-Match") === etag) {
return new Response(null, {
status: 304,
headers: { ETag: etag, ...corsHeaders(env, origin) },
});
}
return json(manifest, {
etag,
releaseId: manifest.release_id,
degradedReason: manifest.schema_fingerprint_ok ? undefined : "schema-fingerprint-mismatch",
cacheControl: cacheControl(Number.parseInt(env.CACHE_TTL_MANIFEST, 10)),
headers: corsHeaders(env, origin),
});
}