source: imaps-frontend/node_modules/commander/typings/index.d.ts@ 79a0317

main
Last change on this file since 79a0317 was 79a0317, checked in by stefan toskovski <stefantoska84@…>, 3 days ago

F4 Finalna Verzija

  • Property mode set to 100644
File size: 8.3 KB
Line 
1// Type definitions for commander 2.11
2// Project: https://github.com/visionmedia/commander.js
3// Definitions by: Alan Agius <https://github.com/alan-agius4>, Marcelo Dezem <https://github.com/mdezem>, vvakame <https://github.com/vvakame>, Jules Randolph <https://github.com/sveinburne>
4// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
5
6declare namespace local {
7
8 class Option {
9 flags: string;
10 required: boolean;
11 optional: boolean;
12 bool: boolean;
13 short?: string;
14 long: string;
15 description: string;
16
17 /**
18 * Initialize a new `Option` with the given `flags` and `description`.
19 *
20 * @param {string} flags
21 * @param {string} [description]
22 */
23 constructor(flags: string, description?: string);
24 }
25
26 class Command extends NodeJS.EventEmitter {
27 [key: string]: any;
28
29 args: string[];
30
31 /**
32 * Initialize a new `Command`.
33 *
34 * @param {string} [name]
35 */
36 constructor(name?: string);
37
38 /**
39 * Set the program version to `str`.
40 *
41 * This method auto-registers the "-V, --version" flag
42 * which will print the version number when passed.
43 *
44 * @param {string} str
45 * @param {string} [flags]
46 * @returns {Command} for chaining
47 */
48 version(str: string, flags?: string): Command;
49
50 /**
51 * Add command `name`.
52 *
53 * The `.action()` callback is invoked when the
54 * command `name` is specified via __ARGV__,
55 * and the remaining arguments are applied to the
56 * function for access.
57 *
58 * When the `name` is "*" an un-matched command
59 * will be passed as the first arg, followed by
60 * the rest of __ARGV__ remaining.
61 *
62 * @example
63 * program
64 * .version('0.0.1')
65 * .option('-C, --chdir <path>', 'change the working directory')
66 * .option('-c, --config <path>', 'set config path. defaults to ./deploy.conf')
67 * .option('-T, --no-tests', 'ignore test hook')
68 *
69 * program
70 * .command('setup')
71 * .description('run remote setup commands')
72 * .action(function() {
73 * console.log('setup');
74 * });
75 *
76 * program
77 * .command('exec <cmd>')
78 * .description('run the given remote command')
79 * .action(function(cmd) {
80 * console.log('exec "%s"', cmd);
81 * });
82 *
83 * program
84 * .command('teardown <dir> [otherDirs...]')
85 * .description('run teardown commands')
86 * .action(function(dir, otherDirs) {
87 * console.log('dir "%s"', dir);
88 * if (otherDirs) {
89 * otherDirs.forEach(function (oDir) {
90 * console.log('dir "%s"', oDir);
91 * });
92 * }
93 * });
94 *
95 * program
96 * .command('*')
97 * .description('deploy the given env')
98 * .action(function(env) {
99 * console.log('deploying "%s"', env);
100 * });
101 *
102 * program.parse(process.argv);
103 *
104 * @param {string} name
105 * @param {string} [desc] for git-style sub-commands
106 * @param {CommandOptions} [opts] command options
107 * @returns {Command} the new command
108 */
109 command(name: string, desc?: string, opts?: commander.CommandOptions): Command;
110
111 /**
112 * Define argument syntax for the top-level command.
113 *
114 * @param {string} desc
115 * @returns {Command} for chaining
116 */
117 arguments(desc: string): Command;
118
119 /**
120 * Parse expected `args`.
121 *
122 * For example `["[type]"]` becomes `[{ required: false, name: 'type' }]`.
123 *
124 * @param {string[]} args
125 * @returns {Command} for chaining
126 */
127 parseExpectedArgs(args: string[]): Command;
128
129 /**
130 * Register callback `fn` for the command.
131 *
132 * @example
133 * program
134 * .command('help')
135 * .description('display verbose help')
136 * .action(function() {
137 * // output help here
138 * });
139 *
140 * @param {(...args: any[]) => void} fn
141 * @returns {Command} for chaining
142 */
143 action(fn: (...args: any[]) => void): Command;
144
145 /**
146 * Define option with `flags`, `description` and optional
147 * coercion `fn`.
148 *
149 * The `flags` string should contain both the short and long flags,
150 * separated by comma, a pipe or space. The following are all valid
151 * all will output this way when `--help` is used.
152 *
153 * "-p, --pepper"
154 * "-p|--pepper"
155 * "-p --pepper"
156 *
157 * @example
158 * // simple boolean defaulting to false
159 * program.option('-p, --pepper', 'add pepper');
160 *
161 * --pepper
162 * program.pepper
163 * // => Boolean
164 *
165 * // simple boolean defaulting to true
166 * program.option('-C, --no-cheese', 'remove cheese');
167 *
168 * program.cheese
169 * // => true
170 *
171 * --no-cheese
172 * program.cheese
173 * // => false
174 *
175 * // required argument
176 * program.option('-C, --chdir <path>', 'change the working directory');
177 *
178 * --chdir /tmp
179 * program.chdir
180 * // => "/tmp"
181 *
182 * // optional argument
183 * program.option('-c, --cheese [type]', 'add cheese [marble]');
184 *
185 * @param {string} flags
186 * @param {string} [description]
187 * @param {((arg1: any, arg2: any) => void) | RegExp} [fn] function or default
188 * @param {*} [defaultValue]
189 * @returns {Command} for chaining
190 */
191 option(flags: string, description?: string, fn?: ((arg1: any, arg2: any) => void) | RegExp, defaultValue?: any): Command;
192 option(flags: string, description?: string, defaultValue?: any): Command;
193
194 /**
195 * Allow unknown options on the command line.
196 *
197 * @param {boolean} [arg] if `true` or omitted, no error will be thrown for unknown options.
198 * @returns {Command} for chaining
199 */
200 allowUnknownOption(arg?: boolean): Command;
201
202 /**
203 * Parse `argv`, settings options and invoking commands when defined.
204 *
205 * @param {string[]} argv
206 * @returns {Command} for chaining
207 */
208 parse(argv: string[]): Command;
209
210 /**
211 * Parse options from `argv` returning `argv` void of these options.
212 *
213 * @param {string[]} argv
214 * @returns {ParseOptionsResult}
215 */
216 parseOptions(argv: string[]): commander.ParseOptionsResult;
217
218 /**
219 * Return an object containing options as key-value pairs
220 *
221 * @returns {{[key: string]: any}}
222 */
223 opts(): { [key: string]: any };
224
225 /**
226 * Set the description to `str`.
227 *
228 * @param {string} str
229 * @param {{[argName: string]: string}} argsDescription
230 * @return {(Command | string)}
231 */
232 description(str: string, argsDescription?: {[argName: string]: string}): Command;
233 description(): string;
234
235 /**
236 * Set an alias for the command.
237 *
238 * @param {string} alias
239 * @return {(Command | string)}
240 */
241 alias(alias: string): Command;
242 alias(): string;
243
244 /**
245 * Set or get the command usage.
246 *
247 * @param {string} str
248 * @return {(Command | string)}
249 */
250 usage(str: string): Command;
251 usage(): string;
252
253 /**
254 * Set the name of the command.
255 *
256 * @param {string} str
257 * @return {Command}
258 */
259 name(str: string): Command;
260
261 /**
262 * Get the name of the command.
263 *
264 * @return {string}
265 */
266 name(): string;
267
268 /**
269 * Output help information for this command.
270 *
271 * @param {(str: string) => string} [cb]
272 */
273 outputHelp(cb?: (str: string) => string): void;
274
275 /** Output help information and exit.
276 *
277 * @param {(str: string) => string} [cb]
278 */
279 help(cb?: (str: string) => string): never;
280 }
281
282}
283
284declare namespace commander {
285
286 type Command = local.Command
287
288 type Option = local.Option
289
290 interface CommandOptions {
291 noHelp?: boolean;
292 isDefault?: boolean;
293 }
294
295 interface ParseOptionsResult {
296 args: string[];
297 unknown: string[];
298 }
299
300 interface CommanderStatic extends Command {
301 Command: typeof local.Command;
302 Option: typeof local.Option;
303 CommandOptions: CommandOptions;
304 ParseOptionsResult: ParseOptionsResult;
305 }
306
307}
308
309declare const commander: commander.CommanderStatic;
310export = commander;
Note: See TracBrowser for help on using the repository browser.