@sprucelabs/spruce-cli
Version:
Command line interface for building Spruce skills.
47 lines • 2.16 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const schema_1 = require("@sprucelabs/schema");
const spruce_skill_utils_1 = require("@sprucelabs/spruce-skill-utils");
const namedTemplateItem_builder_1 = __importDefault(require("../../../schemas/v2020_07_22/namedTemplateItem.builder"));
const action_utility_1 = __importDefault(require("../../../utilities/action.utility"));
const AbstractAction_1 = __importDefault(require("../../AbstractAction"));
class CreatePluginAction extends AbstractAction_1.default {
optionsSchema = optionsSchema;
invocationMessage = 'Creating a new view plugin... 🖼️';
commandAliases = ['create.view.plugin'];
async execute(options) {
const { nameReadable, nameCamel, namePascal } = this.validateAndNormalizeOptions(options);
const normalizedNameCamel = nameCamel ?? spruce_skill_utils_1.namesUtil.toCamel(nameReadable);
const normalizedNamePascal = namePascal ?? spruce_skill_utils_1.namesUtil.toPascal(normalizedNameCamel);
const writer = this.Writer('view');
const files = await writer.writeViewControllerPlugin({
cwd: this.cwd,
nameCamel: normalizedNameCamel,
namePascal: normalizedNamePascal,
});
const sync = await this.Action('view', 'sync').execute({});
return action_utility_1.default.mergeActionResults({ files }, sync);
}
}
exports.default = CreatePluginAction;
const optionsSchema = (0, schema_1.buildSchema)({
id: 'createViewPluginOptions',
fields: {
nameReadable: {
...namedTemplateItem_builder_1.default.fields.nameReadable,
label: 'Plugin name',
},
nameCamel: {
...namedTemplateItem_builder_1.default.fields.nameCamel,
isRequired: false,
},
namePascal: {
...namedTemplateItem_builder_1.default.fields.namePascal,
isRequired: false,
},
},
});
//# sourceMappingURL=CreatePluginAction.js.map