async generateVisualPlugin()

in index.js [229:266]


	async generateVisualPlugin() {
		const pluginOptions = {
			pluginName: `${this.options.visual.guid}${
				this.options.devMode ? DEBUG : ""
			}`,
			visualGuid: this.options.visual.guid,
			visualClass: this.options.visual.visualClassName,
			visualDisplayName: this.options.visual.displayName,
			visualVersion: this.options.visual.version,
			apiVersion: this.options.apiVersion,
			visualSourceLocation: this.options.visualSourceLocation,
		};
		const pluginTs = pluginTemplate(pluginOptions);
		let pluginFolderPath = this.options.pluginLocation.split(path.sep);
		pluginFolderPath.pop();
		let pluginFolder = path.join(
			process.cwd(),
			pluginFolderPath.join(path.sep)
		);
		await fs.ensureDir(pluginFolder);
		// write file if only changes in visualPlugin
		let oldPluginTs = "";
		if (
			await fs.exists(
				path.join(process.cwd(), this.options.pluginLocation)
			)
		) {
			oldPluginTs = await fs.readFile(
				path.join(process.cwd(), this.options.pluginLocation)
			);
		}
		if (oldPluginTs.toString() !== pluginTs.toString()) {
			return await fs.writeFile(
				path.join(process.cwd(), this.options.pluginLocation),
				pluginTs
			);
		}
	}