buildWeb: use fflate instead of yazl

This commit is contained in:
Vendicated 2022-10-22 23:35:30 +02:00
parent 35d2b8d1cf
commit a3b0556a9a
No known key found for this signature in database
GPG key ID: EC781ADFB93EFFA3
3 changed files with 22 additions and 25 deletions

View file

@ -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();