@sprucelabs/spruce-cli
Version:
Command line interface for building Spruce skills.
59 lines • 2.57 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const ConversationStore_1 = __importDefault(require("../features/conversation/stores/ConversationStore"));
const EventStore_1 = __importDefault(require("../features/event/stores/EventStore"));
const ListenerStore_1 = __importDefault(require("../features/event/stores/ListenerStore"));
const OnboardingStore_1 = __importDefault(require("../features/onboard/stores/OnboardingStore"));
const OrganizationStore_1 = __importDefault(require("../features/organization/stores/OrganizationStore"));
const PermissionStore_1 = __importDefault(require("../features/permission/stores/PermissionStore"));
const SchemaStore_1 = __importDefault(require("../features/schema/stores/SchemaStore"));
const SkillStore_1 = __importDefault(require("../features/skill/stores/SkillStore"));
const StoreStore_1 = __importDefault(require("../features/store/stores/StoreStore"));
const ViewStore_1 = __importDefault(require("../features/view/stores/ViewStore"));
class StoreFactory {
serviceFactory;
cwd;
homeDir;
apiClientFactory;
emitter;
constructor(options) {
const { cwd, serviceFactory, homeDir, apiClientFactory, emitter } = options;
this.cwd = cwd;
this.serviceFactory = serviceFactory;
this.homeDir = homeDir;
this.apiClientFactory = apiClientFactory;
this.emitter = emitter;
}
Store(code, options) {
const storeOptions = {
cwd: options?.cwd ?? this.cwd,
serviceFactory: this.serviceFactory,
homeDir: this.homeDir,
apiClientFactory: options?.apiClientFactory ?? this.apiClientFactory,
emitter: this.emitter,
...options,
};
if (!storeMap[code]) {
throw new Error(`Could not find store with code '${code}'.`);
}
const store = new storeMap[code](storeOptions);
return store;
}
}
exports.default = StoreFactory;
const storeMap = {
onboarding: OnboardingStore_1.default,
schema: SchemaStore_1.default,
event: EventStore_1.default,
skill: SkillStore_1.default,
organization: OrganizationStore_1.default,
conversation: ConversationStore_1.default,
store: StoreStore_1.default,
view: ViewStore_1.default,
listener: ListenerStore_1.default,
permission: PermissionStore_1.default,
};
//# sourceMappingURL=StoreFactory.js.map
;