summaryrefslogtreecommitdiff
path: root/build.ts
diff options
context:
space:
mode:
authorseth <[email protected]>2023-11-11 05:51:13 -0500
committerseth <[email protected]>2023-11-11 05:54:16 -0500
commit70edf4c616e59a8e83e7ca7faf9faefd6e0b817c (patch)
tree353b1b397a8a57c462bf6eb5ccee46b6ac85f35f /build.ts
initial commit
Diffstat (limited to 'build.ts')
-rw-r--r--build.ts44
1 files changed, 44 insertions, 0 deletions
diff --git a/build.ts b/build.ts
new file mode 100644
index 0000000..47b13f7
--- /dev/null
+++ b/build.ts
@@ -0,0 +1,44 @@
+import { BuildOptions, build } from "esbuild";
+import { existsSync } from "node:fs";
+import { constants, copyFile, mkdir, readdir, rm } from "node:fs/promises";
+import { join } from "node:path";
+
+const distDir = "dist";
+const teawieArchiveDir = "Teawie-Archive/teawie-media/Original Teawies";
+
+const checkAndCreate = async (dir: string) => {
+ if (!existsSync(dir)) {
+ await mkdir(dir, { recursive: true });
+ }
+};
+
+await checkAndCreate(distDir);
+for (const f of await readdir(distDir)) {
+ await rm(join(distDir, f), { recursive: true, force: true });
+}
+
+await checkAndCreate(join(distDir, "static/teawie"));
+
+const wies = (await readdir(teawieArchiveDir)).filter((wie) => {
+ const fileExt = wie.split(".").pop();
+ return !["ini", "txt"].includes(fileExt ?? "");
+});
+
+for (const f of wies) {
+ await copyFile(join(teawieArchiveDir, f), join(distDir, "static/teawie", f), constants.COPYFILE_FICLONE);
+}
+
+const define = {
+ WIES: JSON.stringify(wies),
+};
+
+const options = {
+ entryPoints: ["src/index.ts"],
+ outfile: join(distDir, "_worker.js"),
+ define,
+ format: "esm",
+ bundle: true,
+ minify: true,
+} satisfies BuildOptions;
+
+await build(options);