1 | import { Arguments, Argv, CommandModule } from "yargs";
|
2 | import { Signale } from "signale";
|
3 | declare const RESOLVE: unique symbol;
|
4 | declare const REJECT: unique symbol;
|
5 | declare const HANDLED: unique symbol;
|
6 | declare const LOGGER: unique symbol;
|
7 | export interface Context {
|
8 | [RESOLVE]: (value?: any) => void;
|
9 | [REJECT]: (reason?: any) => void;
|
10 | [LOGGER]?: Signale;
|
11 | [HANDLED]?: boolean;
|
12 | }
|
13 | export interface RootArguments {
|
14 | cwd: string;
|
15 | silent: boolean;
|
16 | }
|
17 | declare type CommandHandler<T> = (args: Arguments<T> & Context) => Promise<void>;
|
18 | declare type RootCommandModule<T> = CommandModule<RootArguments, T>;
|
19 | export interface Command<T> extends Pick<RootCommandModule<T>, Exclude<keyof RootCommandModule<T>, "handler">> {
|
20 | handler: CommandHandler<T>;
|
21 | }
|
22 | export declare function getLogger(ctx: Context): Signale;
|
23 | export declare function setLogger<T extends Context>(ctx: T, logger: Signale): T;
|
24 | export declare function wrapHandler<T extends RootArguments>(handler: CommandHandler<T>): CommandHandler<T>;
|
25 | export declare function wrapCommand<T extends RootArguments>(cmd: Command<T>): RootCommandModule<T>;
|
26 | export declare function parse(input: Argv, argv: string[]): Promise<void>;
|
27 | export {};
|