From 70edf4c616e59a8e83e7ca7faf9faefd6e0b817c Mon Sep 17 00:00:00 2001 From: seth Date: Sat, 11 Nov 2023 05:51:13 -0500 Subject: initial commit --- build.ts | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 build.ts (limited to 'build.ts') 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); -- cgit v1.2.3