archieve-projects/微信机器人/node_modules/cmd-ts/dist/esm/command.d.ts

25 lines
1.1 KiB
TypeScript

import { ParsingInto, ArgParser } from './argparser';
import { PrintHelp, ProvidesHelp, Versioned, Named, Descriptive, Aliased } from './helpdoc';
import { Runner } from './runner';
declare type ArgTypes = Record<string, ArgParser<any> & Partial<ProvidesHelp>>;
declare type HandlerFunc<Args extends ArgTypes> = (args: Output<Args>) => any;
declare type CommandConfig<Arguments extends ArgTypes, Handler extends HandlerFunc<Arguments>> = {
args: Arguments;
version?: string;
name: string;
description?: string;
handler: Handler;
aliases?: string[];
};
declare type Output<Args extends ArgTypes> = {
[key in keyof Args]: ParsingInto<Args[key]>;
};
/**
* A command line utility.
*
* A combination of multiple flags, options and arguments
* with a common name and a handler that expects them as input.
*/
export declare function command<Arguments extends ArgTypes, Handler extends HandlerFunc<Arguments>>(config: CommandConfig<Arguments, Handler>): ArgParser<Output<Arguments>> & PrintHelp & ProvidesHelp & Named & Runner<Output<Arguments>, ReturnType<Handler>> & Partial<Versioned & Descriptive & Aliased>;
export {};