// Copies sw.js + workbox-*.js from dist/server/ to dist/client/ after build. // @astrojs/node standalone only serves static files from dist/client/, but // @vite-pwa/astro generates the service worker into dist/server/ during the // SSR Vite build pass. import { copyFile, readdir } from "node:fs/promises"; import { join } from "node:path"; const serverDir = "dist/server"; const clientDir = "dist/client"; const files = await readdir(serverDir).catch(() => []); for (const file of files) { if (file === "sw.js" || file.startsWith("workbox-")) { await copyFile(join(serverDir, file), join(clientDir, file)); console.log(`[copy-sw] ${file} → dist/client/`); } }