import { mkdir, readdir, rm, copyFile, stat } from 'node:fs/promises' import { join, resolve } from 'node:path' import { fileURLToPath } from 'node:url' 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 scriptDir = fileURLToPath(new URL('.', import.meta.url)) const mobileRoot = resolve(scriptDir, '..') const repoRoot = resolve(mobileRoot, '..') const fromDir = join(repoRoot, 'dist') const toDir = join(mobileRoot, '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) })