UNPKG

@sprucelabs/spruce-cli

Version:

Command line interface for building Spruce skills.

44 lines 1.82 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 AbstractAction_1 = __importDefault(require("../../AbstractAction")); const StoreTemplateItemBuilder_1 = __importDefault(require("../templateItemBuilders/StoreTemplateItemBuilder")); const optionsSchema = (0, schema_1.buildSchema)({ id: 'syncDataStoreOptions', description: "Only needed if you change a store's name, manually add or remove one.", fields: {}, }); class SyncAction extends AbstractAction_1.default { optionsSchema = optionsSchema; commandAliases = ['sync.stores']; invocationMessage = 'Generating store types and setting up store factory... 💿'; async execute(_options) { try { const stores = await this.Store('store').fetchStores(); let files = []; if (stores.length > 0) { const destination = spruce_skill_utils_1.diskUtil.resolveHashSprucePath(this.cwd, 'stores'); const builder = new StoreTemplateItemBuilder_1.default(); const templateItems = builder.buildTemplateItems(stores, destination); const writer = this.Writer('store'); files = await writer.writeTypesAndMap(destination, { stores: templateItems, }); } return { files, }; } catch (err) { return { errors: [err], }; } } } exports.default = SyncAction; //# sourceMappingURL=SyncAction.js.map