20 lines
837 B
TypeScript
20 lines
837 B
TypeScript
import path from "node:path";
|
|
|
|
/**
|
|
* Cache-Control override for non-hashed UI static files (everything outside
|
|
* /assets, which is content-hashed and immutable). Two files must always be
|
|
* revalidated:
|
|
*
|
|
* - `index.html` must never outlive the asset hashes it points at.
|
|
* - `sw.js` is the browser's only channel for updating an installed service
|
|
* worker: clients re-fetch this exact URL to discover new worker code, so
|
|
* any cache TTL here delays every client's update by that long on top of
|
|
* the browser's own update timer.
|
|
*
|
|
* Returns undefined for files where the middleware's default TTL applies.
|
|
*/
|
|
export function staticUiCacheControl(filePath: string): "no-cache" | undefined {
|
|
const basename = path.basename(filePath);
|
|
return basename === "index.html" || basename === "sw.js" ? "no-cache" : undefined;
|
|
}
|