async generateResources()

in index.js [356:428]


	async generateResources(config) {
		const validationErrors = this.checkVisualInfo(config);
		if (validationErrors.length) return Promise.reject(validationErrors);

		const operations = [];
		const dropPath = this.options.packageOutPath;
		const resourcePath = path.join(dropPath, "resources");
		const prodConfig = cloneDeepFunc(config);

		prodConfig.visual.guid = `${config.visual.guid}`; // prod version of visual should not contaings _DEBUG postfix
		prodConfig.visual.gitHubUrl = prodConfig.visual.gitHubUrl || "";
		let packageJSONContent = await this.generatePackageJson(prodConfig);
		prodConfig.externalJS = [];
		prodConfig.assets = {
			icon: "assets/icon.png",
		};

		operations.push(
			fs.outputFile(
				path.join(dropPath, "package.json"),
				packageJSONContent,
				{
					encoding: ENCODING,
				}
			)
		);

		if (this.options.generateResources) {
			operations.push(
				fs.outputFile(
					path.join(resourcePath, "visual.js"),
					config.content.js,
					{
						encoding: ENCODING,
					}
				),
				fs.outputFile(
					path.join(
						resourcePath,
						`${prodConfig.visual.guid}.pbiviz.json`
					),
					JSON.stringify(prodConfig),
					{
						encoding: ENCODING,
					}
				),
				fs.outputFile(
					path.join(resourcePath, "visual.prod.js"),
					config.content.js,
					{
						encoding: ENCODING,
					}
				),
				fs.outputFile(
					path.join(resourcePath, "visual.prod.css"),
					config.content.css,
					{
						encoding: ENCODING,
					}
				)
			);
		}

		if (this.options.generatePbiviz) {
			operations.push(
				this.generatePbiviz(prodConfig, packageJSONContent, dropPath)
			);
		}

		return Promise.all(operations).catch((err) => {
			throw err;
		});
	}