@sprucelabs/spruce-cli
Version:
Command line interface for building Spruce skills.
30 lines (29 loc) • 1.3 kB
TypeScript
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 {};