icore 1.0.5 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/argv.d.ts.map +1 -1
- package/dist/argv.js +72 -4
- package/dist/argv.js.map +1 -1
- package/dist/commands.d.ts +3 -3
- package/dist/commands.d.ts.map +1 -1
- package/dist/options.d.ts +4 -3
- package/dist/options.d.ts.map +1 -1
- package/dist/options.js +6 -3
- package/dist/options.js.map +1 -1
- package/package.json +1 -1
- package/readme.md +56 -16
package/dist/argv.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"argv.d.ts","sourceRoot":"","sources":["../src/argv.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"argv.d.ts","sourceRoot":"","sources":["../src/argv.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAEV,aAAa,EACb,cAAc,EACf,MAAM,WAAW,CAAC;AAEnB;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CACzC,CAAC;AAOF;;GAEG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,MAAM,CAAC,EAAE,aAAa,GACrB,UAAU,CAsHZ"}
|
package/dist/argv.js
CHANGED
|
@@ -18,17 +18,44 @@ exports.parseArgv = parseArgv;
|
|
|
18
18
|
function parseArgv(args, schema) {
|
|
19
19
|
const positionals = [];
|
|
20
20
|
const options = {};
|
|
21
|
+
const aliases = buildShortAliasMap(schema);
|
|
21
22
|
let parseOptions = true;
|
|
22
23
|
for (let index = 0; index < args.length; index += 1) {
|
|
23
24
|
const arg = args[index];
|
|
24
25
|
if (arg === undefined) {
|
|
25
26
|
continue;
|
|
26
27
|
}
|
|
27
|
-
if (!parseOptions
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
if (!parseOptions) {
|
|
29
|
+
positionals.push(arg);
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
if (arg === '--') {
|
|
33
|
+
parseOptions = false;
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
if (isShortOptionToken(arg)) {
|
|
37
|
+
const alias = aliases.get(arg.slice(1));
|
|
38
|
+
if (alias === undefined) {
|
|
39
|
+
positionals.push(arg);
|
|
30
40
|
continue;
|
|
31
41
|
}
|
|
42
|
+
if (Object.hasOwn(options, alias.name)) {
|
|
43
|
+
throw new Error(`Unexpected duplicate argument '--${alias.name}'`);
|
|
44
|
+
}
|
|
45
|
+
if (alias.definition.type === 'boolean') {
|
|
46
|
+
options[alias.name] = true;
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
const nextArg = args[index + 1];
|
|
50
|
+
if (nextArg !== undefined && nextArg !== '--') {
|
|
51
|
+
options[alias.name] = nextArg;
|
|
52
|
+
index += 1;
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
options[alias.name] = true;
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
if (!arg.startsWith('--')) {
|
|
32
59
|
positionals.push(arg);
|
|
33
60
|
continue;
|
|
34
61
|
}
|
|
@@ -40,6 +67,18 @@ function parseArgv(args, schema) {
|
|
|
40
67
|
if (name === '') {
|
|
41
68
|
throw new Error(`Unexpected argument '${arg}'`);
|
|
42
69
|
}
|
|
70
|
+
const definition = schema?.[name];
|
|
71
|
+
if (separatorIndex === -1 && definition === undefined && name.startsWith('no-')) {
|
|
72
|
+
const negatedName = name.slice(3);
|
|
73
|
+
const negatedDefinition = schema?.[negatedName];
|
|
74
|
+
if (negatedDefinition?.type === 'boolean') {
|
|
75
|
+
if (Object.hasOwn(options, negatedName)) {
|
|
76
|
+
throw new Error(`Unexpected duplicate argument '--${negatedName}'`);
|
|
77
|
+
}
|
|
78
|
+
options[negatedName] = false;
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
43
82
|
if (Object.hasOwn(options, name)) {
|
|
44
83
|
throw new Error(`Unexpected duplicate argument '--${name}'`);
|
|
45
84
|
}
|
|
@@ -47,7 +86,6 @@ function parseArgv(args, schema) {
|
|
|
47
86
|
options[name] = option.slice(separatorIndex + 1);
|
|
48
87
|
continue;
|
|
49
88
|
}
|
|
50
|
-
const definition = schema?.[name];
|
|
51
89
|
if (definition?.type === 'boolean') {
|
|
52
90
|
options[name] = true;
|
|
53
91
|
continue;
|
|
@@ -70,4 +108,34 @@ function parseArgv(args, schema) {
|
|
|
70
108
|
options
|
|
71
109
|
};
|
|
72
110
|
}
|
|
111
|
+
function buildShortAliasMap(schema) {
|
|
112
|
+
const aliases = new Map();
|
|
113
|
+
if (schema === undefined) {
|
|
114
|
+
return aliases;
|
|
115
|
+
}
|
|
116
|
+
for (const name of Object.keys(schema)) {
|
|
117
|
+
const definition = schema[name];
|
|
118
|
+
if (definition === undefined || definition.alias === undefined) {
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
assertShortAlias(name, definition.alias);
|
|
122
|
+
if (aliases.has(definition.alias)) {
|
|
123
|
+
throw new Error(`Unexpected duplicate alias '-${definition.alias}'`);
|
|
124
|
+
}
|
|
125
|
+
aliases.set(definition.alias, {
|
|
126
|
+
name,
|
|
127
|
+
definition
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
return aliases;
|
|
131
|
+
}
|
|
132
|
+
function assertShortAlias(name, alias) {
|
|
133
|
+
if (/^[A-Za-z]$/.test(alias)) {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
throw new Error(`Expected alias for '--${name}' as single ASCII letter`);
|
|
137
|
+
}
|
|
138
|
+
function isShortOptionToken(arg) {
|
|
139
|
+
return arg.length === 2 && arg.startsWith('-') && !arg.startsWith('--');
|
|
140
|
+
}
|
|
73
141
|
//# sourceMappingURL=argv.js.map
|
package/dist/argv.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"argv.js","sourceRoot":"","sources":["../src/argv.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;
|
|
1
|
+
{"version":3,"file":"argv.js","sourceRoot":"","sources":["../src/argv.ts"],"names":[],"mappings":"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"}
|
package/dist/commands.d.ts
CHANGED
|
@@ -33,13 +33,13 @@ export type CommandDefinition<TSchema extends OptionsSchema, TContext, TResult,
|
|
|
33
33
|
allowExtraPositionals?: boolean;
|
|
34
34
|
handle(input: CommandInput<TSchema, TContext>): TResult | Promise<TResult>;
|
|
35
35
|
};
|
|
36
|
-
type AnyCommandDefinition = CommandDefinition<OptionsSchema,
|
|
36
|
+
type AnyCommandDefinition = CommandDefinition<OptionsSchema, unknown, unknown>;
|
|
37
37
|
type CommandPathName<TPath extends readonly string[]> = number extends TPath['length'] ? string : TPath extends readonly [infer THead extends string] ? THead : TPath extends readonly [
|
|
38
38
|
infer THead extends string,
|
|
39
39
|
...infer TRest extends readonly string[]
|
|
40
40
|
] ? `${THead} ${CommandPathName<TRest>}` : never;
|
|
41
|
-
type CommandContext<TCommand extends AnyCommandDefinition> = TCommand extends CommandDefinition<OptionsSchema, infer TContext,
|
|
42
|
-
type CommandResult<TCommand extends AnyCommandDefinition> = TCommand extends CommandDefinition<OptionsSchema,
|
|
41
|
+
type CommandContext<TCommand extends AnyCommandDefinition> = TCommand extends CommandDefinition<OptionsSchema, infer TContext, unknown> ? TContext : never;
|
|
42
|
+
type CommandResult<TCommand extends AnyCommandDefinition> = TCommand extends CommandDefinition<OptionsSchema, unknown, infer TResult> ? Awaited<TResult> : never;
|
|
43
43
|
/**
|
|
44
44
|
* Infers the public command name from a command path.
|
|
45
45
|
*/
|
package/dist/commands.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EACnB,MAAM,WAAW,CAAC;AAEnB;;GAEG;AACH,MAAM,MAAM,YAAY,CACtB,OAAO,SAAS,aAAa,EAC7B,QAAQ,IACN;IACF,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAC/B,QAAQ,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACxC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,QAAQ,CAAC;CACnB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,CAC3B,OAAO,SAAS,aAAa,EAC7B,QAAQ,EACR,OAAO,EACP,KAAK,SAAS,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,IAC3E;IACF,IAAI,EAAE,KAAK,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5E,CAAC;AAEF,KAAK,oBAAoB,GAAG,iBAAiB,CAAC,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
|
package/dist/options.d.ts
CHANGED
|
@@ -12,14 +12,15 @@
|
|
|
12
12
|
*/
|
|
13
13
|
type OptionBase<TType extends string, TValue> = {
|
|
14
14
|
type: TType;
|
|
15
|
+
alias?: string;
|
|
15
16
|
required?: boolean;
|
|
16
17
|
default?: TValue;
|
|
17
18
|
};
|
|
18
19
|
/**
|
|
19
20
|
* Raw option value produced by `parseArgv` before schema validation.
|
|
20
21
|
*
|
|
21
|
-
* Long options with a value are stored as strings,
|
|
22
|
-
* stored as `true`.
|
|
22
|
+
* Long options with a value are stored as strings, flag-only options are
|
|
23
|
+
* stored as `true`, and negated boolean options are stored as `false`.
|
|
23
24
|
*/
|
|
24
25
|
export type RawOptionValue = string | boolean;
|
|
25
26
|
/**
|
|
@@ -34,7 +35,7 @@ export type StringOption<TChoices extends readonly string[] = readonly string[]>
|
|
|
34
35
|
/**
|
|
35
36
|
* Declarative boolean flag contract.
|
|
36
37
|
*
|
|
37
|
-
* Boolean options accept flag form
|
|
38
|
+
* Boolean options accept flag form and explicit `true` / `false` values.
|
|
38
39
|
*/
|
|
39
40
|
export type BooleanOption = OptionBase<'boolean', boolean>;
|
|
40
41
|
/**
|
package/dist/options.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,KAAK,UAAU,CAAC,KAAK,SAAS,MAAM,EAAE,MAAM,IAAI;IAC9C,IAAI,EAAE,KAAK,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,MAAM,YAAY,CAAC,QAAQ,SAAS,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,IAC7E,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG;IAChD,OAAO,CAAC,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEJ;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,MAAM,YAAY,CAAC,QAAQ,SAAS,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,IAC7E,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG;IAChD,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEJ;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB,YAAY,GACZ,aAAa,GACb,YAAY,CAAC;AAEjB;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAE7D,KAAK,QAAQ,CAAC,MAAM,IAAI;KACrB,KAAK,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;CACvC,GAAG,EAAE,CAAC;AAEP,KAAK,sBAAsB,CACzB,KAAK,SAAS,aAAa,EAC3B,MAAM,SAAS,aAAa,IAC1B,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;AAEjD,KAAK,6BAA6B,CAChC,QAAQ,SAAS,SAAS,aAAa,EAAE,EACzC,OAAO,SAAS,aAAa,IAC3B,QAAQ,SAAS,SAAS;IAC5B,MAAM,KAAK,SAAS,aAAa;IACjC,GAAG,MAAM,KAAK,SAAS,SAAS,aAAa,EAAE;CAChD,GACG,6BAA6B,CAC7B,KAAK,EACL,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,CACvC,GACC,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,QAAQ,SAAS,SAAS,aAAa,EAAE,IACvE,6BAA6B,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAEhE,KAAK,iBAAiB,CAAC,OAAO,IAAI,OAAO,SAAS;IAAE,OAAO,EAAE,SAAS,CAAC,MAAM,OAAO,SAAS,MAAM,CAAC,EAAE,CAAA;CAAE,GACpG,OAAO,GACP,MAAM,CAAC;AAEX,KAAK,iBAAiB,CAAC,OAAO,IAAI,OAAO,SAAS;IAAE,OAAO,EAAE,SAAS,CAAC,MAAM,OAAO,SAAS,MAAM,CAAC,EAAE,CAAA;CAAE,GACpG,OAAO,GACP,MAAM,CAAC;AAEX,KAAK,WAAW,CAAC,OAAO,IACtB,OAAO,SAAS;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC9B,iBAAiB,CAAC,OAAO,CAAC,GAC1B,OAAO,SAAS;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACjC,OAAO,GACP,OAAO,SAAS;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAChC,iBAAiB,CAAC,OAAO,CAAC,GAC1B,KAAK,CAAC;AAEhB,KAAK,qBAAqB,CAAC,OAAO,IAAI,OAAO,SAAS;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,GACpE,IAAI,GACJ,OAAO,SAAS;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GAClC,IAAI,GACJ,KAAK,CAAC;AAEZ;;;;;GAKG;AACH,MAAM,MAAM,YAAY,CAAC,OAAO,SAAS,aAAa,IAAI;KACvD,KAAK,IAAI,MAAM,OAAO,GAAG,qBAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,IAAI,GACxE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAC3B,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS;CAC5C,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,CAAC,OAAO,SAAS,aAAa,IAAI;KAC/D,KAAK,IAAI,MAAM,OAAO,GAAG,OAAO;CAClC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAAC,OAAO,SAAS,aAAa,IAAI;IAC9D,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAC/B,QAAQ,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;CACzC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,CAAC,OAAO,SAAS,aAAa,EACnC,KAAK,CAAC,QAAQ,SAAS,SAAS,aAAa,EAAE,EAE/C,MAAM,EAAE,OAAO,EACf,GAAG,OAAO,EAAE,QAAQ,GACnB,mBAAmB,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,CAAC,CAMtD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,OAAO,SAAS,aAAa,EAC9D,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GACrC,YAAY,CAAC,OAAO,CAAC,CAEvB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,CAAC,OAAO,SAAS,aAAa,EACtE,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GACrC,kBAAkB,CAAC,OAAO,CAAC,CAyC7B"}
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"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"}
|
package/dist/options.js
CHANGED
|
@@ -104,10 +104,13 @@ function parseStringOption(name, definition, value) {
|
|
|
104
104
|
return value;
|
|
105
105
|
}
|
|
106
106
|
function parseBooleanOption(name, value) {
|
|
107
|
-
if (value
|
|
108
|
-
|
|
107
|
+
if (value === true || value === 'true') {
|
|
108
|
+
return true;
|
|
109
109
|
}
|
|
110
|
-
|
|
110
|
+
if (value === false || value === 'false') {
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
throw new Error(`Expected '--${name}' as boolean flag`);
|
|
111
114
|
}
|
|
112
115
|
function parseNumberOption(name, definition, value) {
|
|
113
116
|
if (typeof value !== 'string' || value.trim() === '') {
|
package/dist/options.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -378,6 +378,24 @@ Options are described as plain objects.
|
|
|
378
378
|
`kebab-case`. Use quoted object keys when your public CLI option contains
|
|
379
379
|
`-`.
|
|
380
380
|
|
|
381
|
+
Each option can define an optional short alias:
|
|
382
|
+
|
|
383
|
+
```ts
|
|
384
|
+
const schema = {
|
|
385
|
+
name: {
|
|
386
|
+
type: 'string',
|
|
387
|
+
alias: 'n'
|
|
388
|
+
},
|
|
389
|
+
upper: {
|
|
390
|
+
type: 'boolean',
|
|
391
|
+
alias: 'u'
|
|
392
|
+
}
|
|
393
|
+
} as const;
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
Aliases must be a single ASCII letter and unique within the schema. Parsed
|
|
397
|
+
values are always returned by long option name.
|
|
398
|
+
|
|
381
399
|
#### `type: 'string'`
|
|
382
400
|
|
|
383
401
|
```ts
|
|
@@ -394,8 +412,8 @@ const schema = {
|
|
|
394
412
|
} as const;
|
|
395
413
|
```
|
|
396
414
|
|
|
397
|
-
String options reject missing required values, blank strings
|
|
398
|
-
and values outside `choices`.
|
|
415
|
+
String options reject missing required values, blank strings such as `--name=`,
|
|
416
|
+
boolean flag form, and values outside `choices`.
|
|
399
417
|
|
|
400
418
|
#### `type: 'boolean'`
|
|
401
419
|
|
|
@@ -407,19 +425,26 @@ const schema = {
|
|
|
407
425
|
} as const;
|
|
408
426
|
```
|
|
409
427
|
|
|
410
|
-
Boolean options accept **flag form
|
|
428
|
+
Boolean options accept **flag form**, explicit `true` / `false` values, and
|
|
429
|
+
schema-known negation:
|
|
411
430
|
|
|
412
431
|
```sh
|
|
413
432
|
--upper
|
|
433
|
+
--upper=true
|
|
434
|
+
--upper=false
|
|
435
|
+
--no-upper
|
|
414
436
|
```
|
|
415
437
|
|
|
416
|
-
|
|
438
|
+
Invalid explicit values are rejected:
|
|
417
439
|
|
|
418
440
|
```sh
|
|
419
|
-
--upper
|
|
420
|
-
--upper=
|
|
441
|
+
--upper=yes
|
|
442
|
+
--upper=
|
|
421
443
|
```
|
|
422
444
|
|
|
445
|
+
`--upper false` keeps `--upper` as `true` and leaves `false` as a positional
|
|
446
|
+
argument.
|
|
447
|
+
|
|
423
448
|
#### `type: 'number'`
|
|
424
449
|
|
|
425
450
|
```ts
|
|
@@ -504,16 +529,28 @@ type Name = 'hello formal';
|
|
|
504
529
|
|
|
505
530
|
### Facade of arguments
|
|
506
531
|
|
|
507
|
-
|
|
532
|
+
Supports a practical GNU-style option syntax:
|
|
508
533
|
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
534
|
+
- long options: `--name value`, `--name=value`;
|
|
535
|
+
- boolean flags: `--flag`, `--flag=true`, `--flag=false`, `--no-flag`;
|
|
536
|
+
- short aliases: `-f`, `-n value`;
|
|
537
|
+
- option terminator: `--`.
|
|
538
|
+
|
|
539
|
+
Use `--` to stop option parsing. The terminator itself is not included in
|
|
540
|
+
positionals; every following token is treated as positional, even when it starts
|
|
541
|
+
with `-`.
|
|
542
|
+
|
|
543
|
+
Short syntax is supported only for aliases declared in the option schema.
|
|
544
|
+
Boolean aliases use flag form, such as `-f`; string and number aliases use a
|
|
545
|
+
separate value, such as `-n value`.
|
|
546
|
+
|
|
547
|
+
Attached short values such as `-nvalue` and grouped short booleans such as
|
|
548
|
+
`-abc` are not supported yet. Unknown short tokens remain positional for
|
|
549
|
+
compatibility.
|
|
550
|
+
|
|
551
|
+
Negated syntax such as `--no-cache` is interpreted as `cache: false` when
|
|
552
|
+
`cache` is a known boolean option. Unknown negated options and negation for
|
|
553
|
+
string or number options are rejected.
|
|
517
554
|
|
|
518
555
|
### Error Messages
|
|
519
556
|
|
|
@@ -528,8 +565,11 @@ after printing `error.message`, terminal output can look like this:
|
|
|
528
565
|
$ node cli.js hello --unknown
|
|
529
566
|
Unexpected argument '--unknown'
|
|
530
567
|
|
|
531
|
-
$ node cli.js hello --upper=
|
|
568
|
+
$ node cli.js hello --upper=yes
|
|
532
569
|
Expected '--upper' as boolean flag
|
|
570
|
+
|
|
571
|
+
$ node cli.js hello --name=
|
|
572
|
+
Expected '--name' as string
|
|
533
573
|
```
|
|
534
574
|
|
|
535
575
|
### Project Boundary
|