@sprucelabs/spruce-cli
Version:
Command line interface for building Spruce skills.
41 lines (40 loc) • 1.62 kB
TypeScript
import { SettingsService, EnvService, AuthService } from '@sprucelabs/spruce-skill-utils';
import EventCacheService from '../features/event/services/EventCacheService';
import RemoteService from '../features/event/services/RemoteService';
import SchemaService from '../features/schema/services/SchemaService';
import VsCodeService from '../features/vscode/services/VsCodeService';
import BuildService from './BuildService';
import CommandServiceImpl from './CommandService';
import DependencyService from './DependencyService';
import ImportService from './ImportService';
import LintService from './LintService';
import PkgService from './PkgService';
import TypeCheckerService from './TypeCheckerService';
export default class ServiceFactory {
static serviceClassOverides: Record<string, any>;
static setServiceClass(name: Service, Class: any): void;
Service<S extends Service>(cwd: string, type: S): ServiceMap[S];
private buildImportService;
static reset(): void;
static setFactoryClass(name: string, Class: any): void;
}
export interface ServiceMap {
pkg: PkgService;
vsCode: VsCodeService;
schema: SchemaService;
lint: LintService;
command: CommandServiceImpl;
typeChecker: TypeCheckerService;
import: ImportService;
build: BuildService;
settings: SettingsService;
env: EnvService;
auth: AuthService;
remote: RemoteService;
eventCache: EventCacheService;
dependency: DependencyService;
}
export type Service = keyof ServiceMap;
export interface ServiceProvider {
Service<S extends Service>(type: S, cwd?: string): ServiceMap[S];
}