UNPKG

@sprucelabs/spruce-cli

Version:

Command line interface for building Spruce skills.

47 lines 2.53 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 spruce_skill_utils_2 = require("@sprucelabs/spruce-skill-utils"); const createSchemaOptions_schema_1 = __importDefault(require("./../../../.spruce/schemas/spruceCli/v2020_07_22/createSchemaOptions.schema")); const syncSchemasOptions_schema_1 = __importDefault(require("./../../../.spruce/schemas/spruceCli/v2020_07_22/syncSchemasOptions.schema")); const AbstractAction_1 = __importDefault(require("../../AbstractAction")); class CreateAction extends AbstractAction_1.default { optionsSchema = createSchemaOptions_schema_1.default; invocationMessage = 'Creating your schema builder... 📃'; async execute(options) { const normalizedOptions = this.validateAndNormalizeOptions(options); const { schemaBuilderDestinationDir, nameCamel, namePascal, nameReadable, syncAfterCreate, shouldEnableVersioning, version, ...rest } = normalizedOptions; const resolvedDestination = spruce_skill_utils_2.diskUtil.resolvePath(this.cwd, schemaBuilderDestinationDir); let resolvedVersion; if (shouldEnableVersioning) { resolvedVersion = await this.resolveVersion(version, resolvedDestination); } const generator = this.Writer('schema'); const results = await generator.writeBuilder(resolvedDestination, { ...rest, nameCamel, shouldEnableVersioning: shouldEnableVersioning ?? undefined, version: resolvedVersion, nameReadable: nameReadable ?? nameCamel, namePascal: namePascal ?? spruce_skill_utils_1.namesUtil.toPascal(nameCamel), }); let errors; if (syncAfterCreate) { const syncOptions = (0, schema_1.normalizeSchemaValues)(syncSchemasOptions_schema_1.default, rest, { shouldIncludePrivateFields: true, }); const syncResults = await this.Action('schema', 'sync').execute(syncOptions); results.push(...(syncResults.files ?? [])); if (syncResults.errors) { errors = syncResults.errors; } } return { files: results, errors }; } } exports.default = CreateAction; //# sourceMappingURL=CreateAction.js.map