UNPKG

@sprucelabs/spruce-cli

Version:

Command line interface for building Spruce skills.

41 lines 1.64 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 SpruceError_1 = __importDefault(require("../../../errors/SpruceError")); const action_utility_1 = __importDefault(require("../../../utilities/action.utility")); const AbstractAction_1 = __importDefault(require("../../AbstractAction")); const optionsSchema = (0, schema_1.buildSchema)({ id: 'createThemeOptions', description: 'Create a theme for your skill.', fields: {}, }); class CreateThemeAction extends AbstractAction_1.default { optionsSchema = optionsSchema; commandAliases = ['create.theme']; invocationMessage = `Let's get pretty! 🤩`; async execute(_options) { const writer = this.Writer('view'); if (writer.doesThemeFileExist(this.cwd)) { return { errors: [ new SpruceError_1.default({ code: 'THEME_EXISTS', }), ], }; } const events = this.getFeature('event'); let syncResults = {}; if (!events.hasBeenSynced()) { syncResults = await this.Action('event', 'sync').execute({}); } const files = await writer.writeTheme(this.cwd); const results = { files }; return action_utility_1.default.mergeActionResults(syncResults, results); } } exports.default = CreateThemeAction; //# sourceMappingURL=CreateThemeAction.js.map