UNPKG

@sprucelabs/spruce-cli

Version:

Command line interface for building Spruce skills.

58 lines (57 loc) 2.36 kB
import { SettingsService } from '@sprucelabs/spruce-skill-utils'; import { Templates } from '@sprucelabs/spruce-templates'; import ConversationWriter from '../features/conversation/writers/ConversationWriter'; import DeployWriter from '../features/deploy/writers/DeployWriter'; import ErrorWriter from '../features/error/writers/ErrorWriter'; import EventWriter from '../features/event/writers/EventWriter'; import LogWriter from '../features/log/writers/LogWriter'; import NodeWriter from '../features/node/writers/NodeWriter'; import PermissionWriter from '../features/permission/writers/PermissionWriter'; import PolishWriter from '../features/polish/writers/PolishWriter'; import SandboxWriter from '../features/sandbox/writers/SandboxWriter'; import SchemaWriter from '../features/schema/writers/SchemaWriter'; import SkillGenerator from '../features/skill/writers/SkillWriter'; import StoreWriter from '../features/store/writers/StoreWriter'; import TestWriter from '../features/test/writers/TestWriter'; import ViewWriter from '../features/view/writers/ViewWriter'; import VsCodeWriter from '../features/vscode/writers/VsCodeWriter'; import LintService from '../services/LintService'; import { FileDescription } from '../types/cli.types'; import { GraphicsInterface } from '../types/cli.types'; import { WriterOptions } from './AbstractWriter'; export default class WriterFactory { private templates; private ui; private linter?; private settings; private static classMap; constructor(options: { templates: Templates; ui: GraphicsInterface; linter?: LintService; settings: SettingsService; }); static reset(): void; static setWriterClass(code: WriterCode, writer: any): void; Writer<C extends WriterCode>(code: C, options: Partial<WriterOptions> & { fileDescriptions: FileDescription[]; }): WriterMap[C]; } export interface WriterMap { error: ErrorWriter; event: EventWriter; schema: SchemaWriter; skill: SkillGenerator; test: TestWriter; node: NodeWriter; vscode: VsCodeWriter; conversation: ConversationWriter; deploy: DeployWriter; sandbox: SandboxWriter; store: StoreWriter; view: ViewWriter; log: LogWriter; polish: PolishWriter; permission: PermissionWriter; } export type WriterCode = keyof WriterMap;