Files

41 lines
1.1 KiB
JavaScript

import { copyFile, mkdir } from "node:fs/promises";
import path from "node:path";
import { fileURLToPath } from "node:url";
import {
demoPublicRoutes,
demoRuntimeRoutes,
} from "../src/lib/demoRoutes.mjs";
const siteRoot = path.resolve(fileURLToPath(new URL("..", import.meta.url)));
const distRoot = path.join(siteRoot, "dist");
const demoRoutes = demoPublicRoutes.map((route) => `demo/${route}`);
const runtimeRoutes = demoRuntimeRoutes.map((route) => `demo/runtime/${route}`);
async function copyHtml(source, route) {
const targetDir = path.join(distRoot, route);
await mkdir(targetDir, { recursive: true });
await copyFile(source, path.join(targetDir, "index.html"));
}
const demoShell = path.join(distRoot, "demo", "index.html");
const runtimeApp = path.join(
distRoot,
"demo",
"runtime",
"app",
"index.html",
);
for (const route of demoRoutes) {
await copyHtml(demoShell, route);
}
for (const route of runtimeRoutes) {
await copyHtml(runtimeApp, route);
}
console.log(
`Materialized ${demoRoutes.length} public demo routes and ${runtimeRoutes.length} runtime routes`,
);