import fs from "fs"; let watch = false; let debug = false; process.argv.forEach(c => { if (c.includes("--watch")) watch = true; if (c.includes("--debug")) debug = true; }); if (watch) { console.log("Watch mode enabled"); const watcher = fs.watch( "./src/", { recursive: true }, async (event, filename) => { if (event !== "change" && event !== "rename") return; console.log(""); console.log("Rebuilding..."); await build(); } ); } async function build() { console.log("Removing old build..."); if (fs.existsSync("build")) { fs.rmSync("build", { recursive: true, force: true }); } console.log("Compiling scripts..."); const build = await Bun.build({ entrypoints: ["src/index.ts"], target: "browser", minify: true, outdir: "./build/" }); if (build.logs.length > 0) { console.log("Build logs:", build.logs); } if (!build.success) return; console.log("Adding userscript header..."); const userscriptHeader = fs .readFileSync("scripts/userscriptHeader.js") .toString(); const artifact = fs.readFileSync("build/index.js").toString(); fs.writeFileSync("build/Saturn.user.js", userscriptHeader + artifact); console.log("Done"); } await build();