UNPKG

@sprucelabs/spruce-cli

Version:

Command line interface for building Spruce skills.

64 lines 2.39 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 ui_utility_1 = __importDefault(require("../../utilities/ui.utility")); const AbstractFeature_1 = __importDefault(require("../AbstractFeature")); class StoreFeature extends AbstractFeature_1.default { nameReadable = 'Data Stores'; description = 'For working with remote places of storage.'; code = 'store'; dependencies = [ { code: 'skill', isRequired: true, }, ]; packageDependencies = [ { name: '@sprucelabs/spruce-store-plugin@latest', isDev: false }, { name: '@sprucelabs/data-stores@latest', isDev: false }, ]; actionsDir = spruce_skill_utils_1.diskUtil.resolvePath(__dirname, 'actions'); constructor(options) { super(options); void this.emitter.on('test.register-abstract-test-classes', this.registerAbstractTestClassHandler.bind(this)); void this.emitter.on('feature.did-execute', this.handleDidExecute.bind(this)); } async registerAbstractTestClassHandler() { return { abstractClasses: [ { name: 'AbstractStoreTest', label: 'AbstractStoreTest', import: '@sprucelabs/spruce-store-plugin', featureCode: 'store', }, ], }; } async handleDidExecute(payload) { const isInstalled = await this.features.isInstalled('store'); const isUpgrade = isInstalled && payload.featureCode === 'node' && payload.actionCode === 'upgrade'; if (isUpgrade) { ui_utility_1.default.renderMasthead({ ui: this.ui, headline: 'Re-syncing data stores...', }); const results = await this.Action('store', 'sync').execute({}); return results; } return {}; } async afterPackageInstall() { const files = await this.Writer('store').writePlugin(this.cwd); return { files, }; } } exports.default = StoreFeature; //# sourceMappingURL=StoreFeature.js.map