@sprucelabs/spruce-cli
Version:
Command line interface for building Spruce skills.
34 lines (33 loc) • 1.21 kB
TypeScript
import { GraphicsInterface } from '../../types/cli.types';
import OnboardingStore from './stores/OnboardingStore';
export type Script = ScriptItem[];
type ScriptItem = string | ScriptItemCallback;
type ScriptRedirect = string;
type ScriptItemCallback = (player: CallbackPlayer) => Promise<void | ScriptRedirect> | void | ScriptRedirect;
export interface CallbackPlayer {
ui: GraphicsInterface;
redirect(toScriptKey: string): ScriptRedirect;
onboardingStore: OnboardingStore;
executeCommand: CommandExecuter;
}
export type CommandExecuter = (command: string) => Promise<void>;
export default class ScriptPlayer {
private ui;
private scriptsByKey;
private onboardingStore;
private commandExecuter;
constructor(options: {
ui: GraphicsInterface;
onboardingStore: OnboardingStore;
commandExecuter: CommandExecuter;
});
playScriptWithKey(key: string): Promise<void>;
loadScript(key: string, script: Script): void;
playScript(script: Script): Promise<void>;
private buildCallbackOptions;
private redirectAndPlay;
static redirect(toScriptKey: string): string;
private extractDestination;
private isRedirect;
}
export {};