import { copyFile, mkdir, readFile, writeFile } from "node:fs/promises"; await mkdir("dist/assets", { recursive: true }); const result = await Bun.build({ entrypoints: ["src/client/main.ts"], outdir: "dist/assets", target: "browser", minify: true, naming: "app.js", }); if (!result.success) { for (const log of result.logs) console.error(log); process.exit(1); } const buildId = Date.now().toString(36); const html = await readFile("src/client/index.html", "utf8"); await writeFile("dist/index.html", html.replaceAll("__BUILD_ID__", buildId)); await copyFile("src/client/styles.css", "dist/styles.css"); await copyFile("src/client/manifest.webmanifest", "dist/manifest.webmanifest"); await copyFile("src/client/icon.svg", "dist/icon.svg"); for (const size of [180, 192, 512]) await copyFile(`src/client/icon-${size}.png`, `dist/icon-${size}.png`); const worker = await readFile("src/client/sw.js", "utf8"); await writeFile("dist/sw.js", worker.replaceAll("__BUILD_ID__", buildId)); console.log("Built PWA in dist/");