import { mkdir, readdir, rm, copyFile, stat } from 'node:fs/promises' import { join, resolve } from 'node:path' async function copyDir(srcDir, dstDir) { await mkdir(dstDir, { recursive: true }) const entries = await readdir(srcDir, { withFileTypes: true }) for (const entry of entries) { const src = join(srcDir, entry.name) const dst = join(dstDir, entry.name) if (entry.isDirectory()) { await copyDir(src, dst) continue } if (entry.isFile()) { await copyFile(src, dst) } } } async function main() { const repoRoot = resolve(process.cwd(), '..') const fromDir = join(repoRoot, 'dist') const toDir = resolve(process.cwd(), 'www') const st = await stat(fromDir).catch(() => null) if (!st || !st.isDirectory()) { throw new Error(`Missing dist/ at ${fromDir}. Run: pnpm -C .. run build:vite`) } await rm(toDir, { recursive: true, force: true }) await copyDir(fromDir, toDir) } main().catch((err) => { console.error(err) process.exit(1) })