taskgenius_taskgenius-plugin/scripts/zip.mjs
quorafind 912789918b build: configure release-it for automated releases
- Add release-it with conventional changelog support
- Configure automatic GitHub releases with asset uploads
- Add custom Obsidian version bumper plugin
- Add zip script for packaging releases
- Update package.json with release scripts
- Install required dependencies (jszip, globby, release-it plugins)
2025-08-09 10:26:32 +08:00

22 lines
792 B
JavaScript

import {createReadStream, createWriteStream, readFileSync} from "fs";
import {rm} from "fs/promises";
import JSZip from "jszip";
import {join} from "path";
import {pipeline} from "stream/promises";
import {globby} from "globby"
const assets = ["main.js", "styles.css", "manifest.json"];
await globby("dist/*.zip").then(files => Promise.all(files.map(f => rm(f))))
const zip = new JSZip();
for (const filename of assets) {
zip.file(filename, createReadStream(join("dist", filename)));
}
const version = JSON.parse(readFileSync(join("package.json"), "utf-8")).version;
const out = join("dist", `task-genius-${version}.zip`)
await pipeline(
zip.generateNodeStream({type: "nodebuffer", streamFiles: true, compression: "DEFLATE"}),
createWriteStream(out),
);
console.log(out + " written.");