UNPKG

f2e-server3

Version:

f2e-server 3.0

37 lines (36 loc) 1.2 kB
interface Option<R extends string, V> { name: string; short: string; argument: R; description?: string; defaultValue?: V; values?: V[]; } type PickArgs<T extends string> = T extends `-${string}, --${string} <${infer R}>` ? R : never; type PickCmd<T extends string, V> = T extends `${string} <${infer F}>` ? Command<{ [k in F]: V; }> : Command; export declare class Command<Args extends object = {}> { options: Option<string, any>[]; commands: Map<string, Command<{}>>; name: string; subname: string | undefined; _version: string; _description: string; constructor(name: string); version(v: string): this; command<T extends string>(name: T): PickCmd<T, any>; description(description: string): this; option<T extends `-${string}, --${string} <${string}>`, F = string>(name_all: T, description?: string, defaultValue?: F, values?: readonly F[]): Command<Args & { [k in PickArgs<T>]: F; }>; actions: { (options: Args): void | Promise<void>; }[]; action(ac: { (options: Args): void | Promise<void>; }): this; parse(argv: string[]): Promise<void>; private showHelp; } export {};