UNPKG

@sprucelabs/spruce-cli

Version:

Command line interface for building Spruce skills.

55 lines (54 loc) 2.14 kB
import AgentStore from '../features/agent/stores/AgentStore'; import ConversationStore from '../features/conversation/stores/ConversationStore'; import EventStore from '../features/event/stores/EventStore'; import ListenerStore from '../features/event/stores/ListenerStore'; import OnboardingStore from '../features/onboard/stores/OnboardingStore'; import OrganizationStore from '../features/organization/stores/OrganizationStore'; import PermissionStore from '../features/permission/stores/PermissionStore'; import SchemaStore from '../features/schema/stores/SchemaStore'; import SkillStoreImpl, { SkillStoreOptions } from '../features/skill/stores/SkillStore'; import StoreStore from '../features/store/stores/StoreStore'; import ViewStore from '../features/view/stores/ViewStore'; import { GlobalEmitter } from '../GlobalEmitter'; import ServiceFactory from '../services/ServiceFactory'; import { ApiClientFactory } from '../types/apiClient.types'; export default class StoreFactory { private serviceFactory; private cwd; private homeDir; private apiClientFactory; private emitter; constructor(options: StoreFactoryOptions); Store<C extends StoreCode>(code: C, options?: CreateStoreOptions<C>): StoreMap[C]; } interface UniversalOptions { cwd?: string; apiClientFactory?: ApiClientFactory; } export type CreateStoreOptions<Code extends StoreCode> = Code extends keyof StoreOptionsMap ? //@ts-ignore StoreOptionsMap[Code] & UniversalOptions : UniversalOptions; export interface StoreMap { onboarding: OnboardingStore; schema: SchemaStore; event: EventStore; skill: SkillStoreImpl; organization: OrganizationStore; conversation: ConversationStore; store: StoreStore; view: ViewStore; listener: ListenerStore; permission: PermissionStore; agent: AgentStore; } export type StoreCode = keyof StoreMap; export interface StoreFactoryOptions { cwd: string; serviceFactory: ServiceFactory; homeDir: string; apiClientFactory: ApiClientFactory; emitter: GlobalEmitter; } export interface StoreOptionsMap { skill: SkillStoreOptions; } export {};