async generatePbiviz()

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