2023-09-15 12:51:29 +02:00
|
|
|
import fs from "fs";
|
|
|
|
|
2023-09-16 08:23:44 +02:00
|
|
|
let watch = false;
|
|
|
|
let debug = false;
|
|
|
|
|
|
|
|
process.argv.forEach(c => {
|
|
|
|
if (c.includes("--watch")) watch = true;
|
|
|
|
if (c.includes("--debug")) debug = true;
|
2023-09-15 12:51:29 +02:00
|
|
|
});
|
|
|
|
|
2023-09-16 08:23:44 +02:00
|
|
|
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();
|
|
|
|
|
2023-10-27 20:54:18 +02:00
|
|
|
fs.writeFileSync("build/Solar.user.js", userscriptHeader + artifact);
|
2023-09-16 08:23:44 +02:00
|
|
|
console.log("Done");
|
|
|
|
}
|
2023-09-15 12:51:29 +02:00
|
|
|
|
2023-09-16 08:23:44 +02:00
|
|
|
await build();
|