diff options
Diffstat (limited to 'scripts/build')
-rwxr-xr-x | scripts/build/buildWeb.mjs | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/scripts/build/buildWeb.mjs b/scripts/build/buildWeb.mjs index 286aad3..4d6cf3d 100755 --- a/scripts/build/buildWeb.mjs +++ b/scripts/build/buildWeb.mjs @@ -18,9 +18,12 @@ */ -import { createWriteStream, readFileSync } from "fs"; -import yazl from "yazl"; import esbuild from "esbuild"; +import { zip } from "fflate"; +import { readFileSync, writeFileSync } from "fs"; +import { readFile } from "fs/promises"; +import { join } from "path"; + // wtf is this assert syntax import PackageJSON from "../../package.json" assert { type: "json" }; import { commonOpts, fileIncludePlugin, gitHashPlugin, globPlugins } from "./common.mjs"; @@ -66,13 +69,20 @@ await Promise.all( ] ); -const zip = new yazl.ZipFile(); -zip.outputStream.pipe(createWriteStream("dist/extension.zip")).on("close", () => { - console.info("Extension written to dist/extension.zip"); -}); - -zip.addFile("dist/browser.js", "dist/Vencord.js"); -["background.js", "content.js", "manifest.json"].forEach(f => { - zip.addFile(`browser/${f}`, `${f}`); +zip({ + dist: { + "Vencord.js": readFileSync("dist/browser.js", "binary") + }, + ...Object.fromEntries(await Promise.all(["background.js", "content.js", "manifest.json"].map(async f => [ + f, + await readFile(join("browser", f), "binary") + ]))), +}, {}, (err, data) => { + if (err) { + console.error(err); + process.exitCode = 1; + } else { + writeFileSync("dist/extension.zip", data); + console.info("Extension written to dist/extension.zip"); + } }); -zip.end(); |