in lib/VisualGenerator.js [250:284]
static generate(targetPath, visualName, options) {
return new Promise((resolve, reject) => {
let buildOptions = lodashDefaults(options, defaultOptions);
if (!buildOptions.apiVersion || compareVersions.compare(buildOptions.apiVersion, minAPIversion, "<")) {
return reject(new Error(`Can not generate a visual with an API below than ${minAPIversion}, current API is '${buildOptions.apiVersion}'.`));
}
let visualOptions = generateVisualOptions(visualName, buildOptions.apiVersion);
const validationResult = VisualGenerator.checkVisualName(visualOptions.name);
if (!visualOptions || !visualOptions.name || validationResult) {
return reject(new Error(validationResult || "Invalid visual name"));
}
if (!validTemplate(buildOptions.template)) {
return reject(new Error('Invalid template'));
}
let visualPath = path.join(targetPath, visualOptions.name);
fs.access(visualPath, err => {
if (!err && !buildOptions.force) {
return reject(new Error('This visual already exists. Use force to overwrite.'));
}
try {
if (!err && buildOptions.force) {
fs.removeSync(visualPath);
}
copyVisualTemplate(visualPath, buildOptions.template);
generateSettings(visualPath);
createPbiVizJson(visualPath, visualOptions, options.template);
resolve(visualPath);
} catch (e) {
reject(e);
}
});
});
}