| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- import { EventEmitter } from 'events';
- interface OptionConfig {
- default?: any;
- type?: any[];
- }
- declare class Option {
- rawName: string;
- description: string;
- /** Option name */
- name: string;
- /** Option name and aliases */
- names: string[];
- isBoolean?: boolean;
- required?: boolean;
- config: OptionConfig;
- negated: boolean;
- constructor(rawName: string, description: string, config?: OptionConfig);
- }
- interface CommandArg {
- required: boolean;
- value: string;
- variadic: boolean;
- }
- interface HelpSection {
- title?: string;
- body: string;
- }
- interface CommandConfig {
- allowUnknownOptions?: boolean;
- ignoreOptionDefaultValue?: boolean;
- }
- declare type HelpCallback = (sections: HelpSection[]) => void | HelpSection[];
- declare type CommandExample = ((bin: string) => string) | string;
- declare class Command {
- rawName: string;
- description: string;
- config: CommandConfig;
- cli: CAC;
- options: Option[];
- aliasNames: string[];
- name: string;
- args: CommandArg[];
- commandAction?: (...args: any[]) => any;
- usageText?: string;
- versionNumber?: string;
- examples: CommandExample[];
- helpCallback?: HelpCallback;
- globalCommand?: GlobalCommand;
- constructor(rawName: string, description: string, config: CommandConfig, cli: CAC);
- usage(text: string): this;
- allowUnknownOptions(): this;
- ignoreOptionDefaultValue(): this;
- version(version: string, customFlags?: string): this;
- example(example: CommandExample): this;
- /**
- * Add a option for this command
- * @param rawName Raw option name(s)
- * @param description Option description
- * @param config Option config
- */
- option(rawName: string, description: string, config?: OptionConfig): this;
- alias(name: string): this;
- action(callback: (...args: any[]) => any): this;
- /**
- * Check if a command name is matched by this command
- * @param name Command name
- */
- isMatched(name: string): boolean;
- get isDefaultCommand(): boolean;
- get isGlobalCommand(): boolean;
- /**
- * Check if an option is registered in this command
- * @param name Option name
- */
- hasOption(name: string): Option | undefined;
- outputHelp(): void;
- outputVersion(): void;
- checkRequiredArgs(): void;
- /**
- * Check if the parsed options contain any unknown options
- *
- * Exit and output error when true
- */
- checkUnknownOptions(): void;
- /**
- * Check if the required string-type options exist
- */
- checkOptionValue(): void;
- }
- declare class GlobalCommand extends Command {
- constructor(cli: CAC);
- }
- interface ParsedArgv {
- args: ReadonlyArray<string>;
- options: {
- [k: string]: any;
- };
- }
- declare class CAC extends EventEmitter {
- /** The program name to display in help and version message */
- name: string;
- commands: Command[];
- globalCommand: GlobalCommand;
- matchedCommand?: Command;
- matchedCommandName?: string;
- /**
- * Raw CLI arguments
- */
- rawArgs: string[];
- /**
- * Parsed CLI arguments
- */
- args: ParsedArgv['args'];
- /**
- * Parsed CLI options, camelCased
- */
- options: ParsedArgv['options'];
- showHelpOnExit?: boolean;
- showVersionOnExit?: boolean;
- /**
- * @param name The program name to display in help and version message
- */
- constructor(name?: string);
- /**
- * Add a global usage text.
- *
- * This is not used by sub-commands.
- */
- usage(text: string): this;
- /**
- * Add a sub-command
- */
- command(rawName: string, description?: string, config?: CommandConfig): Command;
- /**
- * Add a global CLI option.
- *
- * Which is also applied to sub-commands.
- */
- option(rawName: string, description: string, config?: OptionConfig): this;
- /**
- * Show help message when `-h, --help` flags appear.
- *
- */
- help(callback?: HelpCallback): this;
- /**
- * Show version number when `-v, --version` flags appear.
- *
- */
- version(version: string, customFlags?: string): this;
- /**
- * Add a global example.
- *
- * This example added here will not be used by sub-commands.
- */
- example(example: CommandExample): this;
- /**
- * Output the corresponding help message
- * When a sub-command is matched, output the help message for the command
- * Otherwise output the global one.
- *
- */
- outputHelp(): void;
- /**
- * Output the version number.
- *
- */
- outputVersion(): void;
- private setParsedInfo;
- unsetMatchedCommand(): void;
- /**
- * Parse argv
- */
- parse(argv?: string[], {
- /** Whether to run the action for matched command */
- run, }?: {
- run?: boolean | undefined;
- }): ParsedArgv;
- private mri;
- runMatchedCommand(): any;
- }
- /**
- * @param name The program name to display in help and version message
- */
- declare const cac: (name?: string) => CAC;
- export default cac;
- export { CAC, Command, cac };
|