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