Project Files
build.mjs
#!/usr/bin/env node
import { execSync } from "node:child_process";
import { rmSync } from "node:fs";
import { resolve } from "node:path";
import { fileURLToPath } from "node:url";
const __dirname = fileURLToPath(new URL(".", import.meta.url));
function clean() {
rmSync(resolve(__dirname, "dist"), { recursive: true, force: true });
rmSync(resolve(__dirname, "dist-temp"), { recursive: true, force: true });
}
console.log("[build] step 1: clean …");
clean();
console.log("[build] step 2: compile TypeScript to dist-temp …");
execSync("npx tsc", { stdio: "inherit", cwd: resolve(__dirname) });
console.log("[build] step 3: bundle with Rollup …");
execSync("npx rollup -c", { stdio: "inherit", cwd: resolve(__dirname) });
console.log("[build] step 4: clean dist-temp …");
rmSync(resolve(__dirname, "dist-temp"), { recursive: true, force: true });
console.log("[build] done — dist/index.js ready");