@sprucelabs/spruce-skill-utils
Version:
Loosely coupled classes and functions to make skill development faster! 🏎
93 lines (92 loc) • 3.1 kB
TypeScript
import { FieldDefinitions, FieldDefinitionValueType } from '@sprucelabs/schema';
export declare enum GraphicsTextEffect {
Reset = "reset",
Bold = "bold",
Dim = "dim",
Italic = "italic",
Underline = "underline",
Inverse = "inverse",
Hidden = "hidden",
Strikethrough = "strikethrough",
Visible = "visible",
Black = "black",
Red = "red",
Green = "green",
Yellow = "yellow",
Blue = "blue",
Magenta = "magenta",
Cyan = "cyan",
White = "white",
Gray = "gray",
Grey = "grey",
BlackBright = "blackBright",
RedBright = "redBright",
GreenBright = "greenBright",
YellowBright = "yellowBright",
BlueBright = "blueBright",
MagentaBright = "magentaBright",
CyanBright = "cyanBright",
WhiteBright = "whiteBright",
BgBlack = "bgBlack",
BgRed = "bgRed",
BgGreen = "bgGreen",
BgYellow = "bgYellow",
BgBlue = "bgBlue",
BgMagenta = "bgMagenta",
BgCyan = "bgCyan",
BgWhite = "bgWhite",
BgBlackBright = "bgBlackBright",
BgRedBright = "bgRedBright",
BgGreenBright = "bgGreenBright",
BgYellowBright = "bgYellowBright",
BgBlueBright = "bgBlueBright",
BgMagentaBright = "bgMagentaBright",
BgCyanBright = "bgCyanBright",
BgWhiteBright = "bgWhiteBright",
SpruceHeader = "tiny"
}
export interface ImageDimensions {
width?: number;
height?: number;
}
export interface ProgressBarOptions {
width?: number;
showPercent?: boolean;
showEta?: boolean;
totalItems?: number;
title?: string;
renderInline?: boolean;
}
export interface ProgressBarUpdateOptions {
progress: number | null;
totalItems?: number;
title?: string;
}
export interface GraphicsInterface {
renderSection(options: {
headline?: string;
lines?: string[];
object?: Record<string, any>;
headlineEffects?: GraphicsTextEffect[];
bodyEffects?: GraphicsTextEffect[];
dividerEffects?: GraphicsTextEffect[];
}): void;
renderObject(obj: any): void;
renderError(err: Error): void;
renderCodeSample(code: string): void;
renderHero(message: string, effects?: GraphicsTextEffect[]): void;
renderHeadline(message: string, effects?: GraphicsTextEffect[], dividerEffects?: GraphicsTextEffect[]): void;
renderDivider(effects?: GraphicsTextEffect[]): void;
renderLine(message: string, effects?: GraphicsTextEffect[]): void;
renderLines(messages: string[], effects?: GraphicsTextEffect[]): void;
renderWarning(message: string, effects?: GraphicsTextEffect[]): void;
renderHint(message: string, effects?: GraphicsTextEffect[]): void;
renderImage(path: string, options?: ImageDimensions): Promise<void>;
prompt<T extends FieldDefinitions>(definition: T): Promise<FieldDefinitionValueType<T>>;
startLoading(message?: string): void;
stopLoading(): void;
renderProgressBar(options: ProgressBarOptions): void;
updateProgressBar(options: ProgressBarUpdateOptions): void;
removeProgressBar(): void;
confirm(question: string): Promise<boolean>;
}