123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413 |
- // Generated by typings
- // Source: https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/master/commander/commander.d.ts
- // Type definitions for commanderjs 2.3.0
- // Project: https://github.com/visionmedia/commander.js
- // Definitions by: Marcelo Dezem <http://github.com/mdezem>, vvakame <http://github.com/vvakame>
- // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
- declare namespace commander {
- interface ICommandStatic {
- /**
- * Initialize a new `Command`.
- *
- * @param {String} name
- * @api public
- */
- new (name?:string):ICommand;
- }
- interface ICommand extends NodeJS.EventEmitter {
- args: string[];
- _args: { required:boolean; name: string; }[];
- /**
- * Add command `name`.
- *
- * The `.action()` callback is invoked when the
- * command `name` is specified via __ARGV__,
- * and the remaining arguments are applied to the
- * function for access.
- *
- * When the `name` is "*" an un-matched command
- * will be passed as the first arg, followed by
- * the rest of __ARGV__ remaining.
- *
- * Examples:
- *
- * program
- * .version('0.0.1')
- * .option('-C, --chdir <path>', 'change the working directory')
- * .option('-c, --config <path>', 'set config path. defaults to ./deploy.conf')
- * .option('-T, --no-tests', 'ignore test hook')
- *
- * program
- * .command('setup')
- * .description('run remote setup commands')
- * .action(function(){
- * console.log('setup');
- * });
- *
- * program
- * .command('exec <cmd>')
- * .description('run the given remote command')
- * .action(function(cmd){
- * console.log('exec "%s"', cmd);
- * });
- *
- * program
- * .command('*')
- * .description('deploy the given env')
- * .action(function(env){
- * console.log('deploying "%s"', env);
- * });
- *
- * program.parse(process.argv);
- *
- * @param {String} name
- * @param {String} [desc]
- * @param {Mixed} [opts]
- * @return {Command} the new command
- * @api public
- */
- command(name:string, desc?:string, opts?: any):ICommand;
- /**
- * Add an implicit `help [cmd]` subcommand
- * which invokes `--help` for the given command.
- *
- * @api private
- */
- addImplicitHelpCommand():void;
- /**
- * Parse expected `args`.
- *
- * For example `["[type]"]` becomes `[{ required: false, name: 'type' }]`.
- *
- * @param {Array} args
- * @return {Command} for chaining
- * @api public
- */
- parseExpectedArgs(args:string[]):ICommand;
- /**
- * Register callback `fn` for the command.
- *
- * Examples:
- *
- * program
- * .command('help')
- * .description('display verbose help')
- * .action(function(){
- * // output help here
- * });
- *
- * @param {Function} fn
- * @return {Command} for chaining
- * @api public
- */
- action(fn:(...args:any[])=>void):ICommand;
- /**
- * Define option with `flags`, `description` and optional
- * coercion `fn`.
- *
- * The `flags` string should contain both the short and long flags,
- * separated by comma, a pipe or space. The following are all valid
- * all will output this way when `--help` is used.
- *
- * "-p, --pepper"
- * "-p|--pepper"
- * "-p --pepper"
- *
- * Examples:
- *
- * // simple boolean defaulting to false
- * program.option('-p, --pepper', 'add pepper');
- *
- * --pepper
- * program.pepper
- * // => Boolean
- *
- * // simple boolean defaulting to true
- * program.option('-C, --no-cheese', 'remove cheese');
- *
- * program.cheese
- * // => true
- *
- * --no-cheese
- * program.cheese
- * // => false
- *
- * // required argument
- * program.option('-C, --chdir <path>', 'change the working directory');
- *
- * --chdir /tmp
- * program.chdir
- * // => "/tmp"
- *
- * // optional argument
- * program.option('-c, --cheese [type]', 'add cheese [marble]');
- *
- * @param {String} flags
- * @param {String} description
- * @param {Function|Mixed} fn or default
- * @param {Mixed} defaultValue
- * @return {Command} for chaining
- * @api public
- */
- option(flags:string, description?:string, fn?:((arg1:any, arg2:any)=>void)|RegExp, defaultValue?:any):ICommand;
- option(flags:string, description?:string, defaultValue?:any):ICommand;
- /**
- * Allow unknown options on the command line.
- *
- * @param {Boolean} arg if `true` or omitted, no error will be thrown
- * for unknown options.
- * @api public
- */
- allowUnknownOption(arg?: boolean):ICommand;
- /**
- * Parse `argv`, settings options and invoking commands when defined.
- *
- * @param {Array} argv
- * @return {Command} for chaining
- * @api public
- */
- parse(argv:string[]):ICommand;
- /**
- * Execute a sub-command executable.
- *
- * @param {Array} argv
- * @param {Array} args
- * @param {Array} unknown
- * @api private
- */
- executeSubCommand(argv:string[], args:string[], unknown:string[]):any; /* child_process.ChildProcess */
- /**
- * Normalize `args`, splitting joined short flags. For example
- * the arg "-abc" is equivalent to "-a -b -c".
- * This also normalizes equal sign and splits "--abc=def" into "--abc def".
- *
- * @param {Array} args
- * @return {Array}
- * @api private
- */
- normalize(args:string[]):string[];
- /**
- * Parse command `args`.
- *
- * When listener(s) are available those
- * callbacks are invoked, otherwise the "*"
- * event is emitted and those actions are invoked.
- *
- * @param {Array} args
- * @return {Command} for chaining
- * @api private
- */
- parseArgs(args:string[], unknown:string[]):ICommand;
- /**
- * Return an option matching `arg` if any.
- *
- * @param {String} arg
- * @return {Option}
- * @api private
- */
- optionFor(arg:string):IOption;
- /**
- * Parse options from `argv` returning `argv`
- * void of these options.
- *
- * @param {Array} argv
- * @return {Array}
- * @api public
- */
- parseOptions(argv:string[]): {args:string[]; unknown:string[];};
- /**
- * Return an object containing options as key-value pairs
- *
- * @return {Object}
- * @api public
- */
- opts():any;
- /**
- * Argument `name` is missing.
- *
- * @param {String} name
- * @api private
- */
- missingArgument(name:string):void;
- /**
- * `Option` is missing an argument, but received `flag` or nothing.
- *
- * @param {String} option
- * @param {String} flag
- * @api private
- */
- optionMissingArgument(option:{flags:string;}, flag?:string):void;
- /**
- * Unknown option `flag`.
- *
- * @param {String} flag
- * @api private
- */
- unknownOption(flag:string):void;
- /**
- * Set the program version to `str`.
- *
- * This method auto-registers the "-V, --version" flag
- * which will print the version number when passed.
- *
- * @param {String} str
- * @param {String} flags
- * @return {Command} for chaining
- * @api public
- */
- version(str:string, flags?:string):ICommand;
- /**
- * Set the description to `str`.
- *
- * @param {String} str
- * @return {String|Command}
- * @api public
- */
- description(str:string):ICommand;
- description():string;
- /**
- * Set an alias for the command
- *
- * @param {String} alias
- * @return {String|Command}
- * @api public
- */
- alias(alias:string):ICommand;
- alias():string;
- /**
- * Set / get the command usage `str`.
- *
- * @param {String} str
- * @return {String|Command}
- * @api public
- */
- usage(str:string):ICommand;
- usage():string;
- /**
- * Get the name of the command
- *
- * @param {String} name
- * @return {String|Command}
- * @api public
- */
- name():string;
- /**
- * Return the largest option length.
- *
- * @return {Number}
- * @api private
- */
- largestOptionLength():number;
- /**
- * Return help for options.
- *
- * @return {String}
- * @api private
- */
- optionHelp():string;
- /**
- * Return command help documentation.
- *
- * @return {String}
- * @api private
- */
- commandHelp():string;
- /**
- * Return program help documentation.
- *
- * @return {String}
- * @api private
- */
- helpInformation():string;
- /**
- * Output help information for this command
- *
- * @api public
- */
- outputHelp():void;
- /**
- * Output help information and exit.
- *
- * @api public
- */
- help():void;
- }
- interface IOptionStatic {
- /**
- * Initialize a new `Option` with the given `flags` and `description`.
- *
- * @param {String} flags
- * @param {String} description
- * @api public
- */
- new (flags:string, description?:string):IOption;
- }
- interface IOption {
- flags:string;
- required:boolean;
- optional:boolean;
- bool:boolean;
- short?:string;
- long:string;
- description:string;
- /**
- * Return option name.
- *
- * @return {String}
- * @api private
- */
- name():string;
- /**
- * Check if `arg` matches the short or long flag.
- *
- * @param {String} arg
- * @return {Boolean}
- * @api private
- */
- is(arg:string):boolean;
- }
- interface IExportedCommand extends ICommand {
- Command: commander.ICommandStatic;
- Option: commander.IOptionStatic;
- }
- }
- declare module "commander" {
- var _tmp:commander.IExportedCommand;
- export = _tmp;
- }
|