@sprucelabs/spruce-cli
Version:
Command line interface for building Spruce skills.
44 lines • 1.82 kB
JavaScript
;
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