UNPKG

@sprucelabs/spruce-cli

Version:

Command line interface for building Spruce skills.

55 lines 2.23 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 PermissionFeature extends AbstractFeature_1.default { code = 'permission'; nameReadable = 'permission'; description = 'Manage permissions for your skill'; dependencies = []; actionsDir = spruce_skill_utils_1.diskUtil.resolvePath(__dirname, 'actions'); packageDependencies = [ { name: '@sprucelabs/spruce-permission-plugin@latest', }, ]; writer; constructor(options) { super(options); this.writer = this.Writer('permission'); void this.emitter.on('feature.did-execute', this.handleDidExecuteAction.bind(this)); } async handleDidExecuteAction({ featureCode, actionCode, }) { const isInstalled = await this.features.isInstalled('permission'); const isSkillInstalled = await this.features.isInstalled('skill'); const isUpgrading = featureCode === 'node' && actionCode === 'upgrade'; const isSyncingEvents = featureCode === 'event' && actionCode === 'sync'; if (isInstalled && (isUpgrading || isSyncingEvents)) { const combinedFile = isSkillInstalled ? await this.writePlugin() : []; const results = await this.Action('permission', 'sync').execute({}); results.files = [...(results.files ?? []), ...combinedFile]; return results; } return {}; } async afterPackageInstall() { const files = await this.writePlugin(); const combinedFile = await this.writeTypesFile(); return { files: [...files, ...combinedFile], }; } async writeTypesFile() { return await this.writer.writeTypesFile(this.cwd, {}); } async writePlugin() { return this.writer.writePlugin(this.cwd); } } exports.default = PermissionFeature; //# sourceMappingURL=PermissionFeature.js.map