UNPKG

@sprucelabs/spruce-cli

Version:

Command line interface for building Spruce skills.

52 lines 2.14 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_schema_1 = __importDefault(require("./../../../.spruce/schemas/spruceCli/v2020_07_22/namedTemplateItem.schema")); const AbstractAction_1 = __importDefault(require("../../AbstractAction")); class CreateAction extends AbstractAction_1.default { optionsSchema = schema; invocationMessage = 'Creating a permission contract... 🛡'; commandAliases = [ 'create.permissions', 'create.permission', ]; async execute(options) { const { nameKebab, nameReadable, nameCamel, description } = this.validateAndNormalizeOptions(options); const destination = spruce_skill_utils_1.diskUtil.resolvePath(this.cwd, 'src', 'permissions'); const writer = this.Writer('permission'); const files = await writer.writeContract(destination, { nameKebab: nameKebab ?? spruce_skill_utils_1.namesUtil.toKebab(nameReadable), nameReadable, nameCamel, description, }); await this.Action('permission', 'sync').execute({}); return { files, }; } } exports.default = CreateAction; const schema = (0, schema_1.buildSchema)({ id: 'createPermission', fields: { nameReadable: { ...namedTemplateItem_schema_1.default.fields.nameReadable, label: `Name your permission contract`, hint: `A contract contains many permissions grouped by a responsibility`, }, ...(0, schema_1.pickFields)(namedTemplateItem_schema_1.default.fields, [ 'nameCamel', 'nameKebab', ]), description: { ...namedTemplateItem_schema_1.default.fields.description, label: `Describe this contract`, }, }, }); //# sourceMappingURL=CreateAction.js.map