UNPKG

@sprucelabs/spruce-cli

Version:

Command line interface for building Spruce skills.

47 lines 1.66 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const spruce_skill_utils_1 = require("@sprucelabs/spruce-skill-utils"); const AbstractFeature_1 = __importDefault(require("../AbstractFeature")); class ConversationFeature extends AbstractFeature_1.default { nameReadable = 'Conversation'; code = 'conversation'; description = 'Computers like to talk, too.'; dependencies = [ { code: 'event', isRequired: true }, ]; _packageDependencies = [ { name: '@sprucelabs/spruce-conversation-plugin@latest', isDev: false, }, ]; actionsDir = spruce_skill_utils_1.diskUtil.resolvePath(__dirname, 'actions'); constructor(options) { super(options); void this.emitter.on('feature.will-execute', this.handleWillExecute.bind(this)); } async handleWillExecute(payload) { const isInstalled = await this.features.isInstalled('conversation'); if (payload.featureCode === 'node' && payload.actionCode === 'upgrade' && isInstalled) { const files = await this.writePlugin(); return { files }; } return {}; } async afterPackageInstall() { const files = await this.writePlugin(); return { files, }; } async writePlugin() { return this.Writer('conversation').writePlugin(this.cwd); } } exports.default = ConversationFeature; //# sourceMappingURL=ConversationFeature.js.map