UNPKG

@sprucelabs/spruce-cli

Version:

Command line interface for building Spruce skills.

47 lines 2.16 kB
"use strict"; 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