diff --git a/package.json b/package.json index a4ae3cfd..f73c457b 100644 --- a/package.json +++ b/package.json @@ -44,8 +44,7 @@ "eslint-plugin-simple-import-sort": "^8.0.0", "standalone-electron-types": "^1.0.0", "type-fest": "^3.1.0", - "typescript": "^4.8.4", - "yazl": "^2.5.1" + "typescript": "^4.8.4" }, "packageManager": "pnpm@7.13.4" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5f181c3e..8a1483b6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,7 +15,6 @@ specifiers: standalone-electron-types: ^1.0.0 type-fest: ^3.1.0 typescript: ^4.8.4 - yazl: ^2.5.1 dependencies: console-menu: 0.1.0 @@ -34,7 +33,6 @@ devDependencies: standalone-electron-types: 1.0.0 type-fest: 3.1.0 typescript: 4.8.4 - yazl: 2.5.1 packages: @@ -270,10 +268,6 @@ packages: fill-range: 7.0.1 dev: true - /buffer-crc32/0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - dev: true - /callsites/3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -1182,12 +1176,6 @@ packages: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} dev: true - /yazl/2.5.1: - resolution: {integrity: sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==} - dependencies: - buffer-crc32: 0.2.13 - dev: true - /yocto-queue/0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} diff --git a/scripts/build/buildWeb.mjs b/scripts/build/buildWeb.mjs index 286aad3b..4d6cf3dc 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({ + 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.addFile("dist/browser.js", "dist/Vencord.js"); -["background.js", "content.js", "manifest.json"].forEach(f => { - zip.addFile(`browser/${f}`, `${f}`); -}); -zip.end();