create-abi
Version:
Interactive CLI for create Abi.js projects.
55 lines (52 loc) • 1.87 kB
TypeScript
import { Definition, Program } from './core.js';
import 'yargs';
declare class ProgramTester<T extends Definition, U extends Required<Omit<T, 'it' | 'yes' | 'no'>>> {
readonly program: Program<T, U>;
constructor(program: Program<T, U>);
intercept(question: string, answer: unknown): this;
scanString(message: string, initialValue?: string): Promise<ValueTester>;
scanBoolean(definition: T, message: string, initialValue?: boolean): Promise<ValueTester>;
scanChoice(message: string, options: {
value: string;
label: string;
}[], initialValue?: string): Promise<ValueTester>;
parse(args: string[]): DefinitionTester<T>;
interact(definition: T): Promise<DefinitionTester<U>>;
execute(input: U): Promise<ResultTester>;
run(args: string[]): Promise<ResultTester>;
}
declare class DefinitionTester<T extends Definition> {
readonly definition: T;
constructor(definition: T);
has(key: string, ...keys: string[]): boolean;
get(key: string): ValueTester;
}
declare class ValueTester {
readonly value: unknown;
constructor(value: unknown);
isUndefined(): boolean;
isNull(): boolean;
isBoolean(): boolean;
isTrue(): boolean;
isFalse(): boolean;
isNumber(validate?: (value: number) => boolean): boolean;
isString(validate?: (value: string) => boolean): boolean;
equals(value: unknown): boolean;
}
declare class ResultTester {
readonly result: number;
constructor(result: number);
isSuccess(): boolean;
isFailure(): boolean;
isInvalid(): boolean;
isUnknown(): boolean;
}
declare class PathTester {
readonly path: string;
constructor(path: string);
isFile(): boolean;
isDir(): boolean;
isSymbolicLink(): boolean;
exists(): boolean;
}
export { DefinitionTester, PathTester, ProgramTester, ResultTester, ValueTester };