salesforcedx-templates
Version:
Salesforce CLI scaffolding commands for different types of Force.com metadata
82 lines • 3.86 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-unused-expression
const command_1 = require("@salesforce/command");
const path = require("path");
const lightningComponentGenerator_1 = require("../../../../generators/lightningComponentGenerator");
const utils_1 = require("../../../../utils");
const lightningComponentFileSuffix = /.cmp$/;
const BUNDLE_TYPE = utils_1.MessageUtil.get('Component');
class LightningComponent extends utils_1.TemplateCommand {
run() {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
utils_1.CreateUtil.checkInputs(this.flags.componentname);
utils_1.CreateUtil.checkInputs(this.flags.template);
const fileparts = path.resolve(this.flags.outputdir).split(path.sep);
if (!this.flags.internal) {
if (this.flags.type === 'lwc' && !fileparts.includes('lwc')) {
throw new Error(utils_1.MessageUtil.get('MissingLWCDir'));
}
else if (!fileparts.includes('aura') && this.flags.type === 'aura') {
throw new Error(utils_1.MessageUtil.get('MissingAuraDir'));
}
}
return this.runGenerator(lightningComponentGenerator_1.default);
});
}
}
LightningComponent.description = utils_1.MessageUtil.buildDescription('LightningCmpDescription', true, undefined, utils_1.MessageUtil.get('LightningCmpHelpExtra'));
LightningComponent.examples = [
'$ sfdx force:lightning:component:create -n mycomponent',
'$ sfdx force:lightning:component:create -n mycomponent --type lwc',
'$ sfdx force:lightning:component:create -n mycomponent -d aura',
'$ sfdx force:lightning:component:create -n mycomponent --type lwc -d lwc'
];
LightningComponent.help = utils_1.MessageUtil.buildHelpText(LightningComponent.examples, true, utils_1.MessageUtil.get('LightningCmpHelpExtra'));
LightningComponent.longDescription = utils_1.MessageUtil.get('LightningCmpLongDescription');
LightningComponent.flagsConfig = {
componentname: command_1.flags.string({
char: 'n',
description: utils_1.MessageUtil.get('LightningNameFlagDescription', [
BUNDLE_TYPE
]),
longDescription: utils_1.MessageUtil.get('LightningNameFlagLongDescription', [
BUNDLE_TYPE
]),
required: true
}),
template: command_1.flags.string({
char: 't',
description: utils_1.MessageUtil.get('TemplateFlagDescription'),
longDescription: utils_1.MessageUtil.get('TemplateFlagLongDescription'),
default: 'DefaultLightningCmp',
options: utils_1.CreateUtil.getCommandTemplatesForFiletype(lightningComponentFileSuffix, 'lightningcomponent')
}),
outputdir: command_1.flags.string({
char: 'd',
description: utils_1.MessageUtil.get('OutputDirFlagDescription'),
longDescription: utils_1.MessageUtil.get('OutputDirFlagLongDescription'),
default: process.cwd()
}),
apiversion: command_1.flags.builtin(),
type: command_1.flags.string({
description: utils_1.MessageUtil.get('LightningCmpTypeFlagDescription'),
longDescription: utils_1.MessageUtil.get('LightningCmpTypeFlagLongDescription'),
options: ['aura', 'lwc'],
default: 'aura'
}),
internal: command_1.flags.boolean({
char: 'i',
description: utils_1.MessageUtil.get('LightningInternalFlagDescription'),
hidden: true
})
};
exports.default = LightningComponent;
//# sourceMappingURL=create.js.map