UNPKG

execli

Version:

Generate task-oriented CLIs declaratively

14 lines 824 B
import { InferredOptionTypes, Options } from "yargs"; import { Task } from "./tasks.js"; type CommandOptions = Readonly<Record<string, Options>>; export type OptionsContext<O extends CommandOptions | void = void> = O extends CommandOptions ? Readonly<InferredOptionTypes<O>> : void; export type Command<O extends CommandOptions | void = void, A = void> = Readonly<O extends CommandOptions ? { options: O; } : unknown> & Readonly<{ task: Task<OptionsContext<O>, A>; }>; export declare const getCommand: <O extends void | Readonly<Record<string, Options>> = void, A = void>(command: Command<O, A>) => Command<O, A>; type Commands = Readonly<Record<string, Command<any>>>; export declare const runCli: (commands: Commands, commandArguments?: string[]) => Promise<void>; export {}; //# sourceMappingURL=commands.d.ts.map