@sprucelabs/spruce-cli
Version:
Command line interface for building Spruce skills.
78 lines (77 loc) • 3 kB
TypeScript
import { FieldDefinitions } from './../.spruce/schemas/fields/fields.types';
import { ExecutionResults } from '../types/cli.types';
import { GraphicsInterface } from '../types/cli.types';
import { GraphicsTextEffect, ProgressBarOptions, ProgressBarUpdateOptions, ImageDimensions } from '../types/graphicsInterface.types';
export default class SpyInterface implements GraphicsInterface {
invocations: {
command: string;
options?: any;
}[];
private cursorPosition;
private promptResolver?;
private confirmResolver?;
private waitForEnterResolver?;
private promptDefaultValue;
private term?;
private startTime;
private promptTimeout?;
private error?;
constructor();
setTitle(_title: string): void;
private shouldRenderTestLogs;
renderWarning(message: string, effects?: GraphicsTextEffect[] | undefined): void;
renderHint(message: string, effects?: GraphicsTextEffect[] | undefined): void;
private trackInvocation;
isWaitingForInput(): boolean;
reset(): void;
setError(err: Error): void;
getLastInvocation(): {
command: string;
options?: any;
};
sendInput(input: Input): Promise<void>;
renderSection(options: {
headline: string;
lines?: string[] | string[];
headlineEffects?: GraphicsTextEffect[];
dividerEffects?: GraphicsTextEffect[];
bodyEffects?: GraphicsTextEffect[];
object?: any;
}): void;
renderObject(obj: any): void;
renderError(err: Error): void;
renderCodeSample(code: string): void;
renderActionSummary(results: ExecutionResults): void;
renderHero(message: string, effects?: GraphicsTextEffect[] | undefined): void;
renderHeadline(message: string, effects: GraphicsTextEffect[], dividerEffects: GraphicsTextEffect[]): void;
renderDivider(effects?: GraphicsTextEffect[] | undefined): void;
renderLine(message: string, effects?: GraphicsTextEffect[] | undefined): void;
private optionallyRenderLine;
renderImage(path: string, options?: ImageDimensions): Promise<void>;
renderLines(messages: string[], effects?: GraphicsTextEffect[] | undefined): void;
prompt<T extends FieldDefinitions>(definition: T): Promise<any>;
startLoading(message?: string | undefined): void;
stopLoading(): void;
waitForEnter(message?: string | undefined): Promise<void>;
waitForInput(): Promise<void>;
confirm(question: string): Promise<boolean>;
clear(): void;
renderProgressBar(options: ProgressBarOptions): void;
updateProgressBar(options: ProgressBarUpdateOptions): void;
removeProgressBar(): void;
getCursorPosition(): Promise<{
x: number;
y: number;
} | null>;
setCursorPosition(pos: {
x: number;
y: number;
}): void;
moveCursorTo(x: number, y: number): void;
clearBelowCursor(): void;
}
interface FilePromptInput {
path: string;
}
type Input = string | string[] | FilePromptInput;
export {};