INNER CODE UNIT · TypeScript
hashAndRenameCss
gimlet-io/capacitor · bundle.ts:12
async function hashAndRenameCss(): Promise<string | null> {
const cssDir = "bundle/styles";
const baseName = "main.css";
const basePath = `${cssDir}/${baseName}`;
try {
const cssContent = await Deno.readFile(basePath);
const digest = await crypto.subtle.digest("SHA-256", cssContent);
const shortHash = toShortHex(digest);
const hashedName = `main-${shortHash}.css`;
const hashedPath = `${cssDir}/${hashedName}`;
// Write/overwrite hashed file
await Deno.writeFile(hashedPath, cssContent);
// Cleanup old hashed CSS assets except current one
for await (const entry of Deno.readDir(cssDir)) {
if (!entry.isFile) continue;