static generate()

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