@kosko/cli
Version:
Organize Kubernetes manifests in JavaScript.
28 lines (27 loc) • 1.22 kB
TypeScript
import { Arguments, Argv, CommandModule } from "yargs";
import signale from "signale";
declare const RESOLVE: unique symbol;
declare const REJECT: unique symbol;
declare const HANDLED: unique symbol;
declare const LOGGER: unique symbol;
export interface Context {
[RESOLVE]: (value?: any) => void;
[REJECT]: (reason?: any) => void;
[LOGGER]?: signale.Signale;
[HANDLED]?: boolean;
}
export interface RootArguments {
cwd: string;
silent: boolean;
}
declare type CommandHandler<T> = (args: Arguments<T> & Context) => Promise<void>;
declare type RootCommandModule<T> = CommandModule<RootArguments, T>;
export interface Command<T> extends Pick<RootCommandModule<T>, Exclude<keyof RootCommandModule<T>, "handler">> {
handler: CommandHandler<T>;
}
export declare function getLogger(ctx: Context): signale.Signale;
export declare function setLogger<T extends Context>(ctx: T, logger: signale.Signale): T;
export declare function wrapHandler<T extends RootArguments>(handler: CommandHandler<T>): CommandHandler<T>;
export declare function wrapCommand<T extends RootArguments>(cmd: Command<T>): RootCommandModule<T>;
export declare function parse(input: Argv, argv: string[]): Promise<void>;
export {};