salesforcedx-templates
Version:
Salesforce CLI scaffolding commands for different types of Force.com metadata
56 lines • 2.33 kB
JavaScript
;
/*
* Copyright (c) 2019, salesforce.com, inc.
* All rights reserved.
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
// tslint:disable:no-var-requires
// tslint:disable:no-unused-expression
const command_1 = require("@salesforce/command");
const path = require("path");
const adapter_1 = require("./adapter");
const messageUtil_1 = require("./messageUtil");
const yeoman = require('yeoman-environment');
const yeomanGenerator = require('yeoman-generator');
class TemplateCommand extends command_1.SfdxCommand {
static buildJson(adapter, targetDir) {
const cleanOutput = adapter.log.getCleanOutput();
const rawOutput = `target dir = ${targetDir}\n${adapter.log.getOutput()}`;
const output = {
outputDir: targetDir,
created: cleanOutput,
rawOutput
};
return output;
}
static getDefaultApiVersion() {
const versionTrimmed = require('../../package.json').version.trim();
return `${versionTrimmed.split('.')[0]}.0`;
}
runGenerator(generator) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
// Can't specify a default value the normal way for apiversion, so set it here
if (!this.flags.apiversion) {
this.flags.apiversion = TemplateCommand.getDefaultApiVersion();
}
const adapter = new adapter_1.ForceGeneratorAdapter();
const env = yeoman.createEnv(undefined, undefined, adapter);
env.registerStub(generator, 'generator');
const result = yield env.run('generator', this.flags);
const targetDir = path.resolve(this.flags.outputdir);
if (this.flags.json) {
return TemplateCommand.buildJson(adapter, targetDir);
}
else {
this.log(messageUtil_1.MessageUtil.get('TargetDirOutput', [targetDir]));
this.log(adapter.log.getOutput());
return result;
}
});
}
}
exports.TemplateCommand = TemplateCommand;
//# sourceMappingURL=templateCommand.js.map