@sprucelabs/spruce-cli
Version:
Command line interface for building Spruce skills.
58 lines (57 loc) • 2.36 kB
TypeScript
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;