-
-
Notifications
You must be signed in to change notification settings - Fork 670
/
Copy pathoptions.d.ts
64 lines (55 loc) · 1.93 KB
/
options.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/**
* @fileoverview Command line options utility definitions.
* @license Apache-2.0
*/
/** A set of options. */
export interface OptionSet {
[key: string]: number | string
}
/** Command line option description. */
export interface OptionDescription {
/** Textual description. */
description?: string | string[],
/** Data type. One of (b)oolean [default], (i)nteger, (f)loat or (s)tring. Uppercase means multiple values. */
type?: "b" | "i" | "f" | "s" | "I" | "F" | "S",
/** Substituted options, if any. */
value?: OptionSet,
/** Short alias, if any. */
alias?: string
/** The default value, if any. */
default?: string | number | boolean | string[] | number[];
/** The category this option belongs in. */
category?: string;
}
/** Configuration object. */
interface Config {
[key: string]: OptionDescription;
}
/** Parsing result. */
interface Result {
/** Parsed options. */
options: OptionSet,
/** Unknown options. */
unknown: string[],
/** Normal arguments. */
arguments: string[],
/** Trailing arguments. */
trailing: string[]
}
/** Parses the specified command line arguments according to the given configuration. */
export function parse(argv: string[], config: Config, propagateDefaults?: boolean): Result;
/** Help formatting options. */
interface HelpOptions {
/** Leading indent. Defaults to 2. */
indent?: number,
/** Table padding. Defaults to 24. */
padding?: number,
/** End of line character. Defaults to "\n". */
eol?: string
}
/** Generates the help text for the specified configuration. */
export function help(config: Config, options?: HelpOptions): string;
/** Merges two sets of options into one, preferring the current over the parent set. */
export function merge(config: Config, currentOptions: OptionSet, parentOptions: OptionSet): OptionSet;
/** Populates default values on a parsed options result. */
export function addDefaults(config: Config, options: OptionSet): OptionSet;