in index.js [430:470]
async generatePbiviz(visualConfigProd, packageJSONContent, dropPath) {
return new Promise(async (resolve, reject) => {
const zip = new JSZip();
zip.file("package.json", packageJSONContent);
zip.folder("resources").file(
`${visualConfigProd.visual.guid}.pbiviz.json`,
JSON.stringify(visualConfigProd)
);
const outPath = path.join(
dropPath,
`${visualConfigProd.visual.guid}.${visualConfigProd.visual.version}.pbiviz`
);
await fs.ensureDir(dropPath);
if (this.options.compression !== "0") {
logger.info("Package compression enabled");
} else {
logger.info("Package compression disabled");
}
const input = zip.generateNodeStream({
compression:
this.options.compression !== "0" ? "DEFLATE" : "STORE",
compressionOptions: {
level: this.options.compression,
},
});
const out = fs.createWriteStream(outPath, {
flags: "w",
});
input
.pipe(out)
.on("error", (err) => {
logger.error("Cannot create package", err);
reject(err);
})
.on("close", () => {
logger.info("Package created!");
resolve();
});
});
}