UNPKG

@sprucelabs/spruce-cli

Version:

Command line interface for building Spruce skills.

30 lines (29 loc) 1.3 kB
import { Schema } from '@sprucelabs/schema'; import { FeatureAction, ActionOptions, FeatureCode } from '../features/features.types'; import { GlobalEmitter } from '../GlobalEmitter'; import { BlockedCommands, OptionOverrides } from '../types/cli.types'; import ActionExecuter from './ActionExecuter'; import FeatureInstaller from './FeatureInstaller'; export default class ActionFactory { private actionOptions; private blockedCommands?; private optionOverrides?; private static overrides; constructor(options: FeatureActionFactoryOptions); Action<F extends FeatureCode, S extends Schema = Schema>(options: { featureCode: F; actionCode: string; actionExecuter: ActionExecuter; featureInstaller: FeatureInstaller; }): FeatureAction<S>; static setActionClass(featureCode: FeatureCode, action: string, ExecuteTrackingAction: ActionConstructor): void; private static overrideKey; static clearActionOverrides(): void; } export interface FeatureActionFactoryOptions extends Omit<ActionOptions, 'parent' | 'actionExecuter' | 'featureInstaller'> { emitter: GlobalEmitter; blockedCommands?: BlockedCommands; optionOverrides?: OptionOverrides; } type ActionConstructor = new (options: ActionOptions) => FeatureAction; export {};