@cli-forge/parser 0.10.0 → 0.11.0
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/LICENSE.md +5 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/config-files/configuration-loader.js.map +1 -0
- package/dist/lib/config-files/index.js.map +1 -0
- package/dist/lib/config-files/json-file-loader.js.map +1 -0
- package/dist/lib/config-files/package-json-loader.js.map +1 -0
- package/dist/lib/config-files/utils.js.map +1 -0
- package/dist/lib/helpers.js.map +1 -0
- package/dist/lib/option-types/array.js.map +1 -0
- package/dist/lib/option-types/boolean.js.map +1 -0
- package/{src → dist}/lib/option-types/common.d.ts +1 -1
- package/dist/lib/option-types/common.js.map +1 -0
- package/dist/lib/option-types/index.d.ts +15 -0
- package/{src → dist}/lib/option-types/index.js +1 -0
- package/dist/lib/option-types/index.js.map +1 -0
- package/dist/lib/option-types/number.js.map +1 -0
- package/dist/lib/option-types/object.d.ts +74 -0
- package/dist/lib/option-types/object.js.map +1 -0
- package/dist/lib/option-types/option-config-to-type.d.ts +9 -0
- package/dist/lib/option-types/option-config-to-type.js.map +1 -0
- package/dist/lib/option-types/option-config.d.ts +24 -0
- package/dist/lib/option-types/option-config.js.map +1 -0
- package/dist/lib/option-types/string.js.map +1 -0
- package/dist/lib/option-types/type-resolution.d.ts +126 -0
- package/dist/lib/option-types/type-resolution.js +7 -0
- package/dist/lib/option-types/type-resolution.js.map +1 -0
- package/dist/lib/parser.d.ts +218 -0
- package/{src → dist}/lib/parser.js +83 -13
- package/dist/lib/parser.js.map +1 -0
- package/dist/lib/parsers/array.js.map +1 -0
- package/dist/lib/parsers/boolean.js.map +1 -0
- package/dist/lib/parsers/number.js.map +1 -0
- package/{src → dist}/lib/parsers/object.d.ts +1 -1
- package/{src → dist}/lib/parsers/object.js +22 -1
- package/dist/lib/parsers/object.js.map +1 -0
- package/dist/lib/parsers/parser-map.js.map +1 -0
- package/dist/lib/parsers/string.js.map +1 -0
- package/dist/lib/parsers/typings.d.ts +11 -0
- package/dist/lib/parsers/typings.js.map +1 -0
- package/dist/lib/utils/case-transformations.js.map +1 -0
- package/dist/lib/utils/chain.d.ts +331 -0
- package/dist/lib/utils/chain.js.map +1 -0
- package/dist/lib/utils/flags.js.map +1 -0
- package/dist/lib/utils/get-configured-key.d.ts +3 -0
- package/dist/lib/utils/get-configured-key.js.map +1 -0
- package/dist/lib/utils/read-default-value.d.ts +2 -0
- package/{src → dist}/lib/utils/read-default-value.js +2 -0
- package/dist/lib/utils/read-default-value.js.map +1 -0
- package/package.json +17 -6
- package/src/lib/config-files/README.md +10 -0
- package/src/index.js.map +0 -1
- package/src/lib/config-files/configuration-loader.js.map +0 -1
- package/src/lib/config-files/index.js.map +0 -1
- package/src/lib/config-files/json-file-loader.js.map +0 -1
- package/src/lib/config-files/package-json-loader.js.map +0 -1
- package/src/lib/config-files/utils.js.map +0 -1
- package/src/lib/helpers.js.map +0 -1
- package/src/lib/option-types/array.js.map +0 -1
- package/src/lib/option-types/boolean.js.map +0 -1
- package/src/lib/option-types/common.js.map +0 -1
- package/src/lib/option-types/index.d.ts +0 -14
- package/src/lib/option-types/index.js.map +0 -1
- package/src/lib/option-types/number.js.map +0 -1
- package/src/lib/option-types/object.d.ts +0 -10
- package/src/lib/option-types/object.js.map +0 -1
- package/src/lib/option-types/option-config-to-type.d.ts +0 -26
- package/src/lib/option-types/option-config-to-type.js.map +0 -1
- package/src/lib/option-types/option-config.d.ts +0 -15
- package/src/lib/option-types/option-config.js.map +0 -1
- package/src/lib/option-types/string.js.map +0 -1
- package/src/lib/parser.d.ts +0 -269
- package/src/lib/parser.js.map +0 -1
- package/src/lib/parsers/array.js.map +0 -1
- package/src/lib/parsers/boolean.js.map +0 -1
- package/src/lib/parsers/number.js.map +0 -1
- package/src/lib/parsers/object.js.map +0 -1
- package/src/lib/parsers/parser-map.js.map +0 -1
- package/src/lib/parsers/string.js.map +0 -1
- package/src/lib/parsers/typings.d.ts +0 -11
- package/src/lib/parsers/typings.js.map +0 -1
- package/src/lib/utils/case-transformations.js.map +0 -1
- package/src/lib/utils/chain.d.ts +0 -397
- package/src/lib/utils/chain.js.map +0 -1
- package/src/lib/utils/flags.js.map +0 -1
- package/src/lib/utils/get-configured-key.d.ts +0 -3
- package/src/lib/utils/get-configured-key.js.map +0 -1
- package/src/lib/utils/read-default-value.d.ts +0 -2
- package/src/lib/utils/read-default-value.js.map +0 -1
- /package/{src → dist}/index.d.ts +0 -0
- /package/{src → dist}/index.js +0 -0
- /package/{src → dist}/lib/config-files/configuration-loader.d.ts +0 -0
- /package/{src → dist}/lib/config-files/configuration-loader.js +0 -0
- /package/{src → dist}/lib/config-files/index.d.ts +0 -0
- /package/{src → dist}/lib/config-files/index.js +0 -0
- /package/{src → dist}/lib/config-files/json-file-loader.d.ts +0 -0
- /package/{src → dist}/lib/config-files/json-file-loader.js +0 -0
- /package/{src → dist}/lib/config-files/package-json-loader.d.ts +0 -0
- /package/{src → dist}/lib/config-files/package-json-loader.js +0 -0
- /package/{src → dist}/lib/config-files/utils.d.ts +0 -0
- /package/{src → dist}/lib/config-files/utils.js +0 -0
- /package/{src → dist}/lib/helpers.d.ts +0 -0
- /package/{src → dist}/lib/helpers.js +0 -0
- /package/{src → dist}/lib/option-types/array.d.ts +0 -0
- /package/{src → dist}/lib/option-types/array.js +0 -0
- /package/{src → dist}/lib/option-types/boolean.d.ts +0 -0
- /package/{src → dist}/lib/option-types/boolean.js +0 -0
- /package/{src → dist}/lib/option-types/common.js +0 -0
- /package/{src → dist}/lib/option-types/number.d.ts +0 -0
- /package/{src → dist}/lib/option-types/number.js +0 -0
- /package/{src → dist}/lib/option-types/object.js +0 -0
- /package/{src → dist}/lib/option-types/option-config-to-type.js +0 -0
- /package/{src → dist}/lib/option-types/option-config.js +0 -0
- /package/{src → dist}/lib/option-types/string.d.ts +0 -0
- /package/{src → dist}/lib/option-types/string.js +0 -0
- /package/{src → dist}/lib/parsers/array.d.ts +0 -0
- /package/{src → dist}/lib/parsers/array.js +0 -0
- /package/{src → dist}/lib/parsers/boolean.d.ts +0 -0
- /package/{src → dist}/lib/parsers/boolean.js +0 -0
- /package/{src → dist}/lib/parsers/number.d.ts +0 -0
- /package/{src → dist}/lib/parsers/number.js +0 -0
- /package/{src → dist}/lib/parsers/parser-map.d.ts +0 -0
- /package/{src → dist}/lib/parsers/parser-map.js +0 -0
- /package/{src → dist}/lib/parsers/string.d.ts +0 -0
- /package/{src → dist}/lib/parsers/string.js +0 -0
- /package/{src → dist}/lib/parsers/typings.js +0 -0
- /package/{src → dist}/lib/utils/case-transformations.d.ts +0 -0
- /package/{src → dist}/lib/utils/case-transformations.js +0 -0
- /package/{src → dist}/lib/utils/chain.js +0 -0
- /package/{src → dist}/lib/utils/flags.d.ts +0 -0
- /package/{src → dist}/lib/utils/flags.js +0 -0
- /package/{src → dist}/lib/utils/get-configured-key.js +0 -0
|
@@ -65,12 +65,7 @@ class ArgvParser {
|
|
|
65
65
|
...this.options.extraParsers,
|
|
66
66
|
};
|
|
67
67
|
}
|
|
68
|
-
|
|
69
|
-
* Registers a new option with the parser.
|
|
70
|
-
* @param name The name of the option
|
|
71
|
-
* @param config The configuration for the option. See {@link OptionConfig}
|
|
72
|
-
* @returns Updated parser instance with the new option registered.
|
|
73
|
-
*/
|
|
68
|
+
// Implementation
|
|
74
69
|
option(name, config) {
|
|
75
70
|
const thisAsNewType = this;
|
|
76
71
|
if (name.includes('-')) {
|
|
@@ -87,12 +82,7 @@ class ArgvParser {
|
|
|
87
82
|
}
|
|
88
83
|
return this;
|
|
89
84
|
}
|
|
90
|
-
|
|
91
|
-
* Registers a new positional argument with the parser.
|
|
92
|
-
* @param name The name of the positional argument
|
|
93
|
-
* @param config The configuration for the positional argument. See {@link OptionConfig}
|
|
94
|
-
* @returns Updated parser instance with the new positional argument registered.
|
|
95
|
-
*/
|
|
85
|
+
// Implementation
|
|
96
86
|
positional(name, config) {
|
|
97
87
|
return this.option(name, {
|
|
98
88
|
...config,
|
|
@@ -234,6 +224,17 @@ class ArgvParser {
|
|
|
234
224
|
normalized[configuration.key] ??= (0, read_default_value_1.readDefaultValue)(configuration)[0];
|
|
235
225
|
}
|
|
236
226
|
}
|
|
227
|
+
// Apply nested defaults for object options (before coerce)
|
|
228
|
+
if (configuration.type === 'object' && normalized[configuration.key] !== undefined) {
|
|
229
|
+
const objectConfig = configuration;
|
|
230
|
+
if (objectConfig.properties) {
|
|
231
|
+
normalized[configuration.key] = applyNestedObjectDefaults(normalized[configuration.key], objectConfig);
|
|
232
|
+
// Now apply coerce after defaults have been applied
|
|
233
|
+
if (configuration.coerce) {
|
|
234
|
+
normalized[configuration.key] = configuration.coerce(normalized[configuration.key]);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
237
238
|
this.reflectEnv(configuration, normalized[configuration.key]);
|
|
238
239
|
}
|
|
239
240
|
return normalized;
|
|
@@ -271,6 +272,12 @@ class ArgvParser {
|
|
|
271
272
|
const configuration = this.configuredOptions[configurationKey];
|
|
272
273
|
try {
|
|
273
274
|
validateOption(configuration, normalized[configuration.key]);
|
|
275
|
+
// Handle nested object properties
|
|
276
|
+
if (configuration.type === 'object' &&
|
|
277
|
+
configuration.properties &&
|
|
278
|
+
normalized[configuration.key] !== undefined) {
|
|
279
|
+
normalized[configuration.key] = normalizeAndValidateObjectProperties(normalized[configuration.key], configuration, configuration.key, errors);
|
|
280
|
+
}
|
|
274
281
|
if (normalized[configuration.key] !== undefined) {
|
|
275
282
|
validateConflicts(configuration);
|
|
276
283
|
validateImplications(configuration);
|
|
@@ -427,7 +434,8 @@ function validateOption(optionConfig, value) {
|
|
|
427
434
|
return true;
|
|
428
435
|
};
|
|
429
436
|
}
|
|
430
|
-
if (optionConfig.validate && value
|
|
437
|
+
if (optionConfig.validate && value != undefined) {
|
|
438
|
+
value;
|
|
431
439
|
let result;
|
|
432
440
|
try {
|
|
433
441
|
result = optionConfig.validate(value);
|
|
@@ -458,6 +466,11 @@ function tryParseValue(parser, input) {
|
|
|
458
466
|
}
|
|
459
467
|
try {
|
|
460
468
|
const val = parser(input);
|
|
469
|
+
// For object types, defer coerce until after nested defaults are applied
|
|
470
|
+
// For other types, apply coerce immediately
|
|
471
|
+
if (input.config.type === 'object') {
|
|
472
|
+
return val;
|
|
473
|
+
}
|
|
461
474
|
return input.config.coerce?.(val) ?? val;
|
|
462
475
|
}
|
|
463
476
|
catch (e) {
|
|
@@ -478,4 +491,61 @@ class ValidationFailedError extends AggregateError {
|
|
|
478
491
|
}
|
|
479
492
|
}
|
|
480
493
|
exports.ValidationFailedError = ValidationFailedError;
|
|
494
|
+
/**
|
|
495
|
+
* Applies default values to nested properties of an object option recursively.
|
|
496
|
+
* This is called during normalization, before coerce is applied.
|
|
497
|
+
* This function is only called when the parent object exists (has at least one property set).
|
|
498
|
+
* @param value The current value of the object
|
|
499
|
+
* @param config The object option configuration
|
|
500
|
+
* @returns The object with defaults applied to nested properties
|
|
501
|
+
*/
|
|
502
|
+
function applyNestedObjectDefaults(value, config) {
|
|
503
|
+
const normalized = { ...value };
|
|
504
|
+
for (const propKey in config.properties) {
|
|
505
|
+
const propConfig = config.properties[propKey];
|
|
506
|
+
// Apply defaults for undefined properties
|
|
507
|
+
if (normalized[propKey] === undefined && propConfig.default !== undefined) {
|
|
508
|
+
normalized[propKey] = (0, read_default_value_1.readDefaultValue)(propConfig)[0];
|
|
509
|
+
}
|
|
510
|
+
// Recursively handle nested objects
|
|
511
|
+
if (propConfig.type === 'object' &&
|
|
512
|
+
'properties' in propConfig &&
|
|
513
|
+
normalized[propKey] !== undefined) {
|
|
514
|
+
normalized[propKey] = applyNestedObjectDefaults(normalized[propKey], propConfig);
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
return normalized;
|
|
518
|
+
}
|
|
519
|
+
/**
|
|
520
|
+
* Validates nested properties of an object option recursively.
|
|
521
|
+
* This is called during validation, after defaults have been applied and before coerce.
|
|
522
|
+
* Checks required properties at any depth.
|
|
523
|
+
* @param value The current value of the object
|
|
524
|
+
* @param config The object option configuration
|
|
525
|
+
* @param keyPath The path to this property for error messages
|
|
526
|
+
* @param errors Array to collect validation errors
|
|
527
|
+
* @returns The validated value
|
|
528
|
+
*/
|
|
529
|
+
function normalizeAndValidateObjectProperties(value, config, keyPath, errors) {
|
|
530
|
+
// If the object is undefined and not required, skip processing
|
|
531
|
+
if (value === undefined) {
|
|
532
|
+
return value;
|
|
533
|
+
}
|
|
534
|
+
const normalized = { ...value };
|
|
535
|
+
for (const propKey in config.properties) {
|
|
536
|
+
const propConfig = config.properties[propKey];
|
|
537
|
+
const propPath = `${keyPath}.${propKey}`;
|
|
538
|
+
// Validate required properties
|
|
539
|
+
if (propConfig.required && normalized[propKey] === undefined) {
|
|
540
|
+
const e = new Error(`Missing required option ${propPath}`);
|
|
541
|
+
delete e.stack;
|
|
542
|
+
errors.push(e);
|
|
543
|
+
}
|
|
544
|
+
// Recursively handle nested objects
|
|
545
|
+
if (propConfig.type === 'object' && 'properties' in propConfig) {
|
|
546
|
+
normalized[propKey] = normalizeAndValidateObjectProperties(normalized[propKey], propConfig, propPath, errors);
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
return normalized;
|
|
550
|
+
}
|
|
481
551
|
//# sourceMappingURL=parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/lib/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array.js","sourceRoot":"","sources":["../../../src/lib/parsers/array.ts"],"names":[],"mappings":";;;AACA,0CAA4C;AAG5C,MAAM,UAAU,GAAG;IACjB,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;CACA,CAAC;AACX,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,EAAE;IAChC,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,OAAO,GAAoC,KAAK,CAAC;IACrD,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;QACvB,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,IAAI,KAAK,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjC,OAAO,GAAG,KAAK,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,GAAG,IAAI,IAAI,CAAC;YACd,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,IAAI,UAAU,EAAE,CAAC;gBACvB,OAAO,GAAG,IAA+B,CAAC;YAC5C,CAAC;iBAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACxB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACpB,GAAG,GAAG,EAAE,CAAC;YACX,CAAC;iBAAM,CAAC;gBACN,GAAG,IAAI,IAAI,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IACD,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEK,MAAM,WAAW,GAAwC,CAE9D,EACA,MAAM,EACN,MAAM,EACN,OAAO,GACoC,EAAE,EAAE;IAC/C,MAAM,MAAM,GACV,MAAM,CAAC,KAAK,KAAK,QAAQ;QACvB,CAAC,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAM;QACvB,CAAC,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAM,CAAC;IACpC,IAAI,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IACzB,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,OAAO,GAAG,EAAE,CAAC;QACX,IAAI,IAAA,kBAAU,EAAC,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACpB,MAAM;QACR,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IACD,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtC,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACrD,CAAC,CAAC;AA1BW,QAAA,WAAW,eA0BtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boolean.js","sourceRoot":"","sources":["../../../src/lib/parsers/boolean.ts"],"names":[],"mappings":";;;AACA,0CAA4C;AAGrC,MAAM,aAAa,GAA0C,CAAC,EACnE,MAAM,EACN,YAAY,GACb,EAAE,EAAE;IACH,MAAM,OAAO,GAAG,YAAY,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE;QACnB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,IAAA,kBAAU,EAAC,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,EAAE,CAAC;IACL,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AACpC,CAAC,CAAC;AApBW,QAAA,aAAa,iBAoBxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"number.js","sourceRoot":"","sources":["../../../src/lib/parsers/number.ts"],"names":[],"mappings":";;;AACA,0CAA4C;AAC5C,uCAAyC;AAGlC,MAAM,YAAY,GAAyC,CAAC,EACjE,MAAM,GACP,EAAE,EAAE;IACH,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IAC3B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,IAAI,sBAAY,EAAE,CAAC;IAC3B,CAAC;IACD,IAAI,IAAA,kBAAU,EAAC,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpB,MAAM,IAAI,sBAAY,EAAE,CAAC;IAC3B,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC,CAAC;AAZW,QAAA,YAAY,gBAYvB"}
|
|
@@ -11,7 +11,28 @@ const objectParser = ({ tokens, config, providedFlag, current, }) => {
|
|
|
11
11
|
// We don't care about the first part, as the base parser has already matched the flag.
|
|
12
12
|
const parts = providedFlag?.split('.').slice(1);
|
|
13
13
|
if (!parts?.length) {
|
|
14
|
-
|
|
14
|
+
// When no dot notation is provided (e.g., just --config), try to parse as JSON string
|
|
15
|
+
const token = tokens.shift();
|
|
16
|
+
if (!token) {
|
|
17
|
+
throw new Error(`${config.key} is configured as an object, but no value was provided. Pass properties like so: --${config.key}.foo bar --${config.key}.baz qux, or provide a JSON string: --${config.key} '{"foo": "bar"}'`);
|
|
18
|
+
}
|
|
19
|
+
try {
|
|
20
|
+
const parsed = JSON.parse(token);
|
|
21
|
+
if (typeof parsed !== 'object' ||
|
|
22
|
+
parsed === null ||
|
|
23
|
+
Array.isArray(parsed)) {
|
|
24
|
+
throw new Error(`Expected ${config.key} to be a JSON object, but got ${typeof parsed}`);
|
|
25
|
+
}
|
|
26
|
+
// Merge parsed JSON with existing values, with JSON taking precedence (last value wins)
|
|
27
|
+
// This matches the behavior of dot notation where later flags override earlier ones
|
|
28
|
+
return { ...current, ...parsed };
|
|
29
|
+
}
|
|
30
|
+
catch (e) {
|
|
31
|
+
if (e instanceof SyntaxError) {
|
|
32
|
+
throw new Error(`Failed to parse ${config.key} as JSON: ${e.message}. Either provide a valid JSON string or use dot notation: --${config.key}.foo bar`);
|
|
33
|
+
}
|
|
34
|
+
throw e;
|
|
35
|
+
}
|
|
15
36
|
}
|
|
16
37
|
const { config: propConfig, readValue, setValue } = parsePath(parts);
|
|
17
38
|
const currentValue = readValue();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object.js","sourceRoot":"","sources":["../../../src/lib/parsers/object.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser-map.js","sourceRoot":"","sources":["../../../src/lib/parsers/parser-map.ts"],"names":[],"mappings":";;;AAAA,uCAA0C;AAC1C,qCAAwC;AACxC,qCAAwC;AACxC,mCAAsC;AACtC,qCAAwC;AAG3B,QAAA,SAAS,GAAgC;IACpD,MAAM,EAAE,qBAAY;IACpB,MAAM,EAAE,qBAAY;IACpB,OAAO,EAAE,uBAAa;IACtB,KAAK,EAAE,mBAAW;IAClB,MAAM,EAAE,qBAAY;CACrB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string.js","sourceRoot":"","sources":["../../../src/lib/parsers/string.ts"],"names":[],"mappings":";;;AACA,0CAA4C;AAC5C,uCAAyC;AAGlC,MAAM,YAAY,GAAyC,CAAC,EACjE,MAAM,GACP,EAAE,EAAE;IACH,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IAC3B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,IAAI,sBAAY,EAAE,CAAC;IAC3B,CAAC;IACD,IAAI,IAAA,kBAAU,EAAC,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpB,MAAM,IAAI,sBAAY,EAAE,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAZW,QAAA,YAAY,gBAYvB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { UnknownOptionConfig } from '../option-types';
|
|
2
|
+
export type ParserContext<TConfig extends UnknownOptionConfig> = {
|
|
3
|
+
config: TConfig;
|
|
4
|
+
tokens: string[];
|
|
5
|
+
current?: any;
|
|
6
|
+
providedFlag?: string;
|
|
7
|
+
};
|
|
8
|
+
export type Parser<TConfig extends UnknownOptionConfig, T = any> = (input: ParserContext<TConfig>) => T;
|
|
9
|
+
export declare class NoValueError extends Error {
|
|
10
|
+
constructor();
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typings.js","sourceRoot":"","sources":["../../../src/lib/parsers/typings.ts"],"names":[],"mappings":";;;AAWA,MAAa,YAAa,SAAQ,KAAK;IACrC;QACE,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC5B,CAAC;CACF;AAJD,oCAIC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"case-transformations.js","sourceRoot":"","sources":["../../../src/lib/utils/case-transformations.ts"],"names":[],"mappings":";;AAAA,sDAEC;AAED,4EA+BC;AAED,8BAIC;AAzCD,SAAgB,qBAAqB,CAAC,GAAW;IAC/C,OAAO,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,SAAgB,gCAAgC,CAAC,GAAW;IAC1D,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,IAAwB,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;QACvB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;gBACvB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1B,CAAC;YACD,WAAW,GAAG,EAAE,CAAC;YACjB,SAAS;QACX,CAAC;QACD,oDAAoD;QACpD,IAAI,IAAI,IAAI,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACxE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACxB,WAAW,GAAG,IAAI,CAAC;YACnB,sCAAsC;QACxC,CAAC;aAAM,IACL,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI;YAC5B,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE;YAC3B,WAAW,CAAC,MAAM,GAAG,CAAC,EACtB,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,WAAW,IAAI,IAAI,CAAC;QACtB,CAAC;QACD,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AACvC,CAAC;AAED,SAAgB,SAAS,CAAC,MAA0B,EAAE,GAAW;IAC/D,OAAO,MAAM;QACX,CAAC,CAAC,GAAG,MAAM,IAAI,gCAAgC,CAAC,GAAG,CAAC,EAAE;QACtD,CAAC,CAAC,gCAAgC,CAAC,GAAG,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
import { UnknownOptionConfig } from '../option-types';
|
|
2
|
+
import { ArgvParser, ParsedArgs } from '../parser';
|
|
3
|
+
type UnaryFunction<T, R> = (arg: T) => R;
|
|
4
|
+
/**
|
|
5
|
+
* Applies a series of functions to an initial value, passing the result of each function to the next.
|
|
6
|
+
*
|
|
7
|
+
* Used to convert code that looks like:
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const a = addB(addC({ a: 'a' }));
|
|
10
|
+
* ```
|
|
11
|
+
* to:
|
|
12
|
+
* ```typescript
|
|
13
|
+
* const a = chain({ a: 'a' }, addB, addC);
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* See [composable-options](/examples/composable-options) for an example of how this can be used.
|
|
17
|
+
*
|
|
18
|
+
* @param initial Initial value to pass through the chain
|
|
19
|
+
* @param fns Functions to apply to the initial value, and each subsequent value
|
|
20
|
+
* @returns Updated value after all functions have been applied
|
|
21
|
+
* @hidden docs for {@link chain} are found on the main signature.
|
|
22
|
+
*/
|
|
23
|
+
export declare function chain<T0, R>(initial: T0, fn0: UnaryFunction<T0, R>): R;
|
|
24
|
+
/**
|
|
25
|
+
* Applies a series of functions to an initial value, passing the result of each function to the next.
|
|
26
|
+
*
|
|
27
|
+
* Used to convert code that looks like:
|
|
28
|
+
* ```typescript
|
|
29
|
+
* const a = addB(addC({ a: 'a' }));
|
|
30
|
+
* ```
|
|
31
|
+
* to:
|
|
32
|
+
* ```typescript
|
|
33
|
+
* const a = chain({ a: 'a' }, addB, addC);
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* See [composable-options](/examples/composable-options) for an example of how this can be used.
|
|
37
|
+
*
|
|
38
|
+
* @param initial Initial value to pass through the chain
|
|
39
|
+
* @param fns Functions to apply to the initial value, and each subsequent value
|
|
40
|
+
* @returns Updated value after all functions have been applied
|
|
41
|
+
* @hidden docs for {@link chain} are found on the main signature.
|
|
42
|
+
*/
|
|
43
|
+
export declare function chain<T0, T1, R>(initial: T0, fn0: UnaryFunction<T0, T1>, fn1: UnaryFunction<T1, R>): R;
|
|
44
|
+
/**
|
|
45
|
+
* Applies a series of functions to an initial value, passing the result of each function to the next.
|
|
46
|
+
*
|
|
47
|
+
* Used to convert code that looks like:
|
|
48
|
+
* ```typescript
|
|
49
|
+
* const a = addB(addC({ a: 'a' }));
|
|
50
|
+
* ```
|
|
51
|
+
* to:
|
|
52
|
+
* ```typescript
|
|
53
|
+
* const a = chain({ a: 'a' }, addB, addC);
|
|
54
|
+
* ```
|
|
55
|
+
*
|
|
56
|
+
* See [composable-options](/examples/composable-options) for an example of how this can be used.
|
|
57
|
+
*
|
|
58
|
+
* @param initial Initial value to pass through the chain
|
|
59
|
+
* @param fns Functions to apply to the initial value, and each subsequent value
|
|
60
|
+
* @returns Updated value after all functions have been applied
|
|
61
|
+
* @hidden docs for {@link chain} are found on the main signature.
|
|
62
|
+
*/
|
|
63
|
+
export declare function chain<T0, T1, T2, R>(initial: T0, fn0: UnaryFunction<T0, T1>, fn1: UnaryFunction<T1, T2>, fn2: UnaryFunction<T2, R>): R;
|
|
64
|
+
/**
|
|
65
|
+
* Applies a series of functions to an initial value, passing the result of each function to the next.
|
|
66
|
+
*
|
|
67
|
+
* Used to convert code that looks like:
|
|
68
|
+
* ```typescript
|
|
69
|
+
* const a = addB(addC({ a: 'a' }));
|
|
70
|
+
* ```
|
|
71
|
+
* to:
|
|
72
|
+
* ```typescript
|
|
73
|
+
* const a = chain({ a: 'a' }, addB, addC);
|
|
74
|
+
* ```
|
|
75
|
+
*
|
|
76
|
+
* See [composable-options](/examples/composable-options) for an example of how this can be used.
|
|
77
|
+
*
|
|
78
|
+
* @param initial Initial value to pass through the chain
|
|
79
|
+
* @param fns Functions to apply to the initial value, and each subsequent value
|
|
80
|
+
* @returns Updated value after all functions have been applied
|
|
81
|
+
* @hidden docs for {@link chain} are found on the main signature.
|
|
82
|
+
*/
|
|
83
|
+
export declare function chain<T0, T1, T2, T3, R>(initial: T0, fn0: UnaryFunction<T0, T1>, fn1: UnaryFunction<T1, T2>, fn2: UnaryFunction<T2, T3>, fn3: UnaryFunction<T3, R>): R;
|
|
84
|
+
/**
|
|
85
|
+
* Applies a series of functions to an initial value, passing the result of each function to the next.
|
|
86
|
+
*
|
|
87
|
+
* Used to convert code that looks like:
|
|
88
|
+
* ```typescript
|
|
89
|
+
* const a = addB(addC({ a: 'a' }));
|
|
90
|
+
* ```
|
|
91
|
+
* to:
|
|
92
|
+
* ```typescript
|
|
93
|
+
* const a = chain({ a: 'a' }, addB, addC);
|
|
94
|
+
* ```
|
|
95
|
+
*
|
|
96
|
+
* See [composable-options](/examples/composable-options) for an example of how this can be used.
|
|
97
|
+
*
|
|
98
|
+
* @param initial Initial value to pass through the chain
|
|
99
|
+
* @param fns Functions to apply to the initial value, and each subsequent value
|
|
100
|
+
* @returns Updated value after all functions have been applied
|
|
101
|
+
* @hidden docs for {@link chain} are found on the main signature.
|
|
102
|
+
*/
|
|
103
|
+
export declare function chain<T0, T1, T2, T3, T4, R>(initial: T0, fn0: UnaryFunction<T0, T1>, fn1: UnaryFunction<T1, T2>, fn2: UnaryFunction<T2, T3>, fn3: UnaryFunction<T3, T4>, fn4: UnaryFunction<T4, R>): R;
|
|
104
|
+
/**
|
|
105
|
+
* Applies a series of functions to an initial value, passing the result of each function to the next.
|
|
106
|
+
*
|
|
107
|
+
* Used to convert code that looks like:
|
|
108
|
+
* ```typescript
|
|
109
|
+
* const a = addB(addC({ a: 'a' }));
|
|
110
|
+
* ```
|
|
111
|
+
* to:
|
|
112
|
+
* ```typescript
|
|
113
|
+
* const a = chain({ a: 'a' }, addB, addC);
|
|
114
|
+
* ```
|
|
115
|
+
*
|
|
116
|
+
* See [composable-options](/examples/composable-options) for an example of how this can be used.
|
|
117
|
+
*
|
|
118
|
+
* @param initial Initial value to pass through the chain
|
|
119
|
+
* @param fns Functions to apply to the initial value, and each subsequent value
|
|
120
|
+
* @returns Updated value after all functions have been applied
|
|
121
|
+
* @hidden docs for {@link chain} are found on the main signature.
|
|
122
|
+
*/
|
|
123
|
+
export declare function chain<T0, T1, T2, T3, T4, T5, R>(initial: T0, fn0: UnaryFunction<T0, T1>, fn1: UnaryFunction<T1, T2>, fn2: UnaryFunction<T2, T3>, fn3: UnaryFunction<T3, T4>, fn4: UnaryFunction<T4, T5>, fn5: UnaryFunction<T5, R>): R;
|
|
124
|
+
/**
|
|
125
|
+
* Applies a series of functions to an initial value, passing the result of each function to the next.
|
|
126
|
+
*
|
|
127
|
+
* Used to convert code that looks like:
|
|
128
|
+
* ```typescript
|
|
129
|
+
* const a = addB(addC({ a: 'a' }));
|
|
130
|
+
* ```
|
|
131
|
+
* to:
|
|
132
|
+
* ```typescript
|
|
133
|
+
* const a = chain({ a: 'a' }, addB, addC);
|
|
134
|
+
* ```
|
|
135
|
+
*
|
|
136
|
+
* See [composable-options](/examples/composable-options) for an example of how this can be used.
|
|
137
|
+
*
|
|
138
|
+
* @param initial Initial value to pass through the chain
|
|
139
|
+
* @param fns Functions to apply to the initial value, and each subsequent value
|
|
140
|
+
* @returns Updated value after all functions have been applied
|
|
141
|
+
* @hidden docs for {@link chain} are found on the main signature.
|
|
142
|
+
*/
|
|
143
|
+
export declare function chain<T0, T1, T2, T3, T4, T5, T6, R>(initial: T0, fn0: UnaryFunction<T0, T1>, fn1: UnaryFunction<T1, T2>, fn2: UnaryFunction<T2, T3>, fn3: UnaryFunction<T3, T4>, fn4: UnaryFunction<T4, T5>, fn5: UnaryFunction<T5, T6>, fn6: UnaryFunction<T6, R>): R;
|
|
144
|
+
/**
|
|
145
|
+
* Applies a series of functions to an initial value, passing the result of each function to the next.
|
|
146
|
+
*
|
|
147
|
+
* Used to convert code that looks like:
|
|
148
|
+
* ```typescript
|
|
149
|
+
* const a = addB(addC({ a: 'a' }));
|
|
150
|
+
* ```
|
|
151
|
+
* to:
|
|
152
|
+
* ```typescript
|
|
153
|
+
* const a = chain({ a: 'a' }, addB, addC);
|
|
154
|
+
* ```
|
|
155
|
+
*
|
|
156
|
+
* See [composable-options](/examples/composable-options) for an example of how this can be used.
|
|
157
|
+
*
|
|
158
|
+
* @param initial Initial value to pass through the chain
|
|
159
|
+
* @param fns Functions to apply to the initial value, and each subsequent value
|
|
160
|
+
* @returns Updated value after all functions have been applied
|
|
161
|
+
* @hidden docs for {@link chain} are found on the main signature.
|
|
162
|
+
*/
|
|
163
|
+
export declare function chain<T0, T1, T2, T3, T4, T5, T6, T7, R>(initial: T0, fn0: UnaryFunction<T0, T1>, fn1: UnaryFunction<T1, T2>, fn2: UnaryFunction<T2, T3>, fn3: UnaryFunction<T3, T4>, fn4: UnaryFunction<T4, T5>, fn5: UnaryFunction<T5, T6>, fn6: UnaryFunction<T6, T7>, fn7: UnaryFunction<T7, R>): R;
|
|
164
|
+
/**
|
|
165
|
+
* Applies a series of functions to an initial value, passing the result of each function to the next.
|
|
166
|
+
*
|
|
167
|
+
* Used to convert code that looks like:
|
|
168
|
+
* ```typescript
|
|
169
|
+
* const a = addB(addC({ a: 'a' }));
|
|
170
|
+
* ```
|
|
171
|
+
* to:
|
|
172
|
+
* ```typescript
|
|
173
|
+
* const a = chain({ a: 'a' }, addB, addC);
|
|
174
|
+
* ```
|
|
175
|
+
*
|
|
176
|
+
* See [composable-options](/examples/composable-options) for an example of how this can be used.
|
|
177
|
+
*
|
|
178
|
+
* @param initial Initial value to pass through the chain
|
|
179
|
+
* @param fns Functions to apply to the initial value, and each subsequent value
|
|
180
|
+
* @returns Updated value after all functions have been applied
|
|
181
|
+
* @hidden docs for {@link chain} are found on the main signature.
|
|
182
|
+
*/
|
|
183
|
+
export declare function chain<T0, T1, T2, T3, T4, T5, T6, T7, T8, R>(initial: T0, fn0: UnaryFunction<T0, T1>, fn1: UnaryFunction<T1, T2>, fn2: UnaryFunction<T2, T3>, fn3: UnaryFunction<T3, T4>, fn4: UnaryFunction<T4, T5>, fn5: UnaryFunction<T5, T6>, fn6: UnaryFunction<T6, T7>, fn7: UnaryFunction<T7, T8>, fn8: UnaryFunction<T8, R>): R;
|
|
184
|
+
/**
|
|
185
|
+
* Applies a series of functions to an initial value, passing the result of each function to the next.
|
|
186
|
+
*
|
|
187
|
+
* Used to convert code that looks like:
|
|
188
|
+
* ```typescript
|
|
189
|
+
* const a = addB(addC({ a: 'a' }));
|
|
190
|
+
* ```
|
|
191
|
+
* to:
|
|
192
|
+
* ```typescript
|
|
193
|
+
* const a = chain({ a: 'a' }, addB, addC);
|
|
194
|
+
* ```
|
|
195
|
+
*
|
|
196
|
+
* See [composable-options](/examples/composable-options) for an example of how this can be used.
|
|
197
|
+
*
|
|
198
|
+
* @param initial Initial value to pass through the chain
|
|
199
|
+
* @param fns Functions to apply to the initial value, and each subsequent value
|
|
200
|
+
* @returns Updated value after all functions have been applied
|
|
201
|
+
* @hidden docs for {@link chain} are found on the main signature.
|
|
202
|
+
*/
|
|
203
|
+
export declare function chain<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, R>(initial: T0, fn0: UnaryFunction<T0, T1>, fn1: UnaryFunction<T1, T2>, fn2: UnaryFunction<T2, T3>, fn3: UnaryFunction<T3, T4>, fn4: UnaryFunction<T4, T5>, fn5: UnaryFunction<T5, T6>, fn6: UnaryFunction<T6, T7>, fn7: UnaryFunction<T7, T8>, fn8: UnaryFunction<T8, T9>, fn9: UnaryFunction<T9, R>): R;
|
|
204
|
+
/**
|
|
205
|
+
* Applies a series of functions to an initial value, passing the result of each function to the next.
|
|
206
|
+
*
|
|
207
|
+
* Used to convert code that looks like:
|
|
208
|
+
* ```typescript
|
|
209
|
+
* const a = addB(addC({ a: 'a' }));
|
|
210
|
+
* ```
|
|
211
|
+
* to:
|
|
212
|
+
* ```typescript
|
|
213
|
+
* const a = chain({ a: 'a' }, addB, addC);
|
|
214
|
+
* ```
|
|
215
|
+
*
|
|
216
|
+
* See [composable-options](/examples/composable-options) for an example of how this can be used.
|
|
217
|
+
*
|
|
218
|
+
* @param initial Initial value to pass through the chain
|
|
219
|
+
* @param fns Functions to apply to the initial value, and each subsequent value
|
|
220
|
+
* @returns Updated value after all functions have been applied
|
|
221
|
+
* @hidden docs for {@link chain} are found on the main signature.
|
|
222
|
+
*/
|
|
223
|
+
export declare function chain<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, R>(initial: T0, fn0: UnaryFunction<T0, T1>, fn1: UnaryFunction<T1, T2>, fn2: UnaryFunction<T2, T3>, fn3: UnaryFunction<T3, T4>, fn4: UnaryFunction<T4, T5>, fn5: UnaryFunction<T5, T6>, fn6: UnaryFunction<T6, T7>, fn7: UnaryFunction<T7, T8>, fn8: UnaryFunction<T8, T9>, fn9: UnaryFunction<T9, T10>, fn10: UnaryFunction<T10, R>): R;
|
|
224
|
+
/**
|
|
225
|
+
* Applies a series of functions to an initial value, passing the result of each function to the next.
|
|
226
|
+
*
|
|
227
|
+
* Used to convert code that looks like:
|
|
228
|
+
* ```typescript
|
|
229
|
+
* const a = addB(addC({ a: 'a' }));
|
|
230
|
+
* ```
|
|
231
|
+
* to:
|
|
232
|
+
* ```typescript
|
|
233
|
+
* const a = chain({ a: 'a' }, addB, addC);
|
|
234
|
+
* ```
|
|
235
|
+
*
|
|
236
|
+
* See [composable-options](/examples/composable-options) for an example of how this can be used.
|
|
237
|
+
*
|
|
238
|
+
* @param initial Initial value to pass through the chain
|
|
239
|
+
* @param fns Functions to apply to the initial value, and each subsequent value
|
|
240
|
+
* @returns Updated value after all functions have been applied
|
|
241
|
+
* @hidden docs for {@link chain} are found on the main signature.
|
|
242
|
+
*/
|
|
243
|
+
export declare function chain<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, R>(initial: T0, fn0: UnaryFunction<T0, T1>, fn1: UnaryFunction<T1, T2>, fn2: UnaryFunction<T2, T3>, fn3: UnaryFunction<T3, T4>, fn4: UnaryFunction<T4, T5>, fn5: UnaryFunction<T5, T6>, fn6: UnaryFunction<T6, T7>, fn7: UnaryFunction<T7, T8>, fn8: UnaryFunction<T8, T9>, fn9: UnaryFunction<T9, T10>, fn10: UnaryFunction<T10, T11>, fn11: UnaryFunction<T11, R>): R;
|
|
244
|
+
/**
|
|
245
|
+
* Applies a series of functions to an initial value, passing the result of each function to the next.
|
|
246
|
+
*
|
|
247
|
+
* Used to convert code that looks like:
|
|
248
|
+
* ```typescript
|
|
249
|
+
* const a = addB(addC({ a: 'a' }));
|
|
250
|
+
* ```
|
|
251
|
+
* to:
|
|
252
|
+
* ```typescript
|
|
253
|
+
* const a = chain({ a: 'a' }, addB, addC);
|
|
254
|
+
* ```
|
|
255
|
+
*
|
|
256
|
+
* See [composable-options](/examples/composable-options) for an example of how this can be used.
|
|
257
|
+
*
|
|
258
|
+
* @param initial Initial value to pass through the chain
|
|
259
|
+
* @param fns Functions to apply to the initial value, and each subsequent value
|
|
260
|
+
* @returns Updated value after all functions have been applied
|
|
261
|
+
* @hidden docs for {@link chain} are found on the main signature.
|
|
262
|
+
*/
|
|
263
|
+
export declare function chain<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, R>(initial: T0, fn0: UnaryFunction<T0, T1>, fn1: UnaryFunction<T1, T2>, fn2: UnaryFunction<T2, T3>, fn3: UnaryFunction<T3, T4>, fn4: UnaryFunction<T4, T5>, fn5: UnaryFunction<T5, T6>, fn6: UnaryFunction<T6, T7>, fn7: UnaryFunction<T7, T8>, fn8: UnaryFunction<T8, T9>, fn9: UnaryFunction<T9, T10>, fn10: UnaryFunction<T10, T11>, fn11: UnaryFunction<T11, T12>, fn12: UnaryFunction<T12, R>): R;
|
|
264
|
+
/**
|
|
265
|
+
* Applies a series of functions to an initial value, passing the result of each function to the next.
|
|
266
|
+
*
|
|
267
|
+
* Used to convert code that looks like:
|
|
268
|
+
* ```typescript
|
|
269
|
+
* const a = addB(addC({ a: 'a' }));
|
|
270
|
+
* ```
|
|
271
|
+
* to:
|
|
272
|
+
* ```typescript
|
|
273
|
+
* const a = chain({ a: 'a' }, addB, addC);
|
|
274
|
+
* ```
|
|
275
|
+
*
|
|
276
|
+
* See [composable-options](/examples/composable-options) for an example of how this can be used.
|
|
277
|
+
*
|
|
278
|
+
* @param initial Initial value to pass through the chain
|
|
279
|
+
* @param fns Functions to apply to the initial value, and each subsequent value
|
|
280
|
+
* @returns Updated value after all functions have been applied
|
|
281
|
+
* @hidden docs for {@link chain} are found on the main signature.
|
|
282
|
+
*/
|
|
283
|
+
export declare function chain<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, R>(initial: T0, fn0: UnaryFunction<T0, T1>, fn1: UnaryFunction<T1, T2>, fn2: UnaryFunction<T2, T3>, fn3: UnaryFunction<T3, T4>, fn4: UnaryFunction<T4, T5>, fn5: UnaryFunction<T5, T6>, fn6: UnaryFunction<T6, T7>, fn7: UnaryFunction<T7, T8>, fn8: UnaryFunction<T8, T9>, fn9: UnaryFunction<T9, T10>, fn10: UnaryFunction<T10, T11>, fn11: UnaryFunction<T11, T12>, fn12: UnaryFunction<T12, T13>, fn13: UnaryFunction<T13, R>): R;
|
|
284
|
+
/**
|
|
285
|
+
* Applies a series of functions to an initial value, passing the result of each function to the next.
|
|
286
|
+
*
|
|
287
|
+
* Used to convert code that looks like:
|
|
288
|
+
* ```typescript
|
|
289
|
+
* const a = addB(addC({ a: 'a' }));
|
|
290
|
+
* ```
|
|
291
|
+
* to:
|
|
292
|
+
* ```typescript
|
|
293
|
+
* const a = chain({ a: 'a' }, addB, addC);
|
|
294
|
+
* ```
|
|
295
|
+
*
|
|
296
|
+
* See [composable-options](/examples/composable-options) for an example of how this can be used.
|
|
297
|
+
*
|
|
298
|
+
* @param initial Initial value to pass through the chain
|
|
299
|
+
* @param fns Functions to apply to the initial value, and each subsequent value
|
|
300
|
+
* @returns Updated value after all functions have been applied
|
|
301
|
+
* @hidden docs for {@link chain} are found on the main signature.
|
|
302
|
+
*/
|
|
303
|
+
export declare function chain<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, R>(initial: T0, fn0: UnaryFunction<T0, T1>, fn1: UnaryFunction<T1, T2>, fn2: UnaryFunction<T2, T3>, fn3: UnaryFunction<T3, T4>, fn4: UnaryFunction<T4, T5>, fn5: UnaryFunction<T5, T6>, fn6: UnaryFunction<T6, T7>, fn7: UnaryFunction<T7, T8>, fn8: UnaryFunction<T8, T9>, fn9: UnaryFunction<T9, T10>, fn10: UnaryFunction<T10, T11>, fn11: UnaryFunction<T11, T12>, fn12: UnaryFunction<T12, T13>, fn13: UnaryFunction<T13, T14>, fn14: UnaryFunction<T14, R>): R;
|
|
304
|
+
/**
|
|
305
|
+
* Applies a series of functions to an initial value, passing the result of each function to the next.
|
|
306
|
+
*
|
|
307
|
+
* Used to convert code that looks like:
|
|
308
|
+
* ```typescript
|
|
309
|
+
* const a = addB(addC({ a: 'a' }));
|
|
310
|
+
* ```
|
|
311
|
+
* to:
|
|
312
|
+
* ```typescript
|
|
313
|
+
* const a = chain({ a: 'a' }, addB, addC);
|
|
314
|
+
* ```
|
|
315
|
+
*
|
|
316
|
+
* See [composable-options](/examples/composable-options) for an example of how this can be used.
|
|
317
|
+
*
|
|
318
|
+
* @param {T0} initial Initial value to pass through the chain
|
|
319
|
+
* @param fns Functions to apply to the initial value, and each subsequent value
|
|
320
|
+
* @returns {R} Updated value after all functions have been applied
|
|
321
|
+
*/
|
|
322
|
+
export declare function chain<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, R>(initial: T0, fn0: UnaryFunction<T0, T1>, fn1: UnaryFunction<T1, T2>, fn2: UnaryFunction<T2, T3>, fn3: UnaryFunction<T3, T4>, fn4: UnaryFunction<T4, T5>, fn5: UnaryFunction<T5, T6>, fn6: UnaryFunction<T6, T7>, fn7: UnaryFunction<T7, T8>, fn8: UnaryFunction<T8, T9>, fn9: UnaryFunction<T9, T10>, fn10: UnaryFunction<T10, T11>, fn11: UnaryFunction<T11, T12>, fn12: UnaryFunction<T12, T13>, fn13: UnaryFunction<T13, T14>, fn14: UnaryFunction<T14, T15>, fn15: UnaryFunction<T15, R>): R;
|
|
323
|
+
/**
|
|
324
|
+
* A composition helper to be used with {@link chain}.
|
|
325
|
+
*
|
|
326
|
+
* @param name The name of the option to add
|
|
327
|
+
* @param config The configuration for the option
|
|
328
|
+
* @returns A unary function that adds an option to an {@link ArgvParser}.
|
|
329
|
+
*/
|
|
330
|
+
export declare function makeComposableOption<const TKey extends string, const TOptionConfig extends UnknownOptionConfig>(name: TKey, config: TOptionConfig): <const T extends ParsedArgs>(argv: ArgvParser<T>) => ArgvParser<T & { [key in TKey]: import("../option-types").WithOptional<import("../option-types").ResolveOptionType<TOptionConfig>, TOptionConfig>; }>;
|
|
331
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../../src/lib/utils/chain.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,wFAAwF;AACxF,4FAA4F;AAC5F,0GAA0G;AAC1G,oGAAoG;AACpG,+CAA+C;;AA4kB/C,sBAKC;AASD,oDAMC;AAlDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,SAAgB,KAAK,CACnB,OAAW,EACX,GAAG,GAA8B;IAEjC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAGlC,IAAU,EAAE,MAAqB;IACjC,OAAO,CAA6B,IAAmB,EAAE,EAAE,CACzD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flags.js","sourceRoot":"","sources":["../../../src/lib/utils/flags.ts"],"names":[],"mappings":";;AAEA,wBAEC;AACD,kCAaC;AACD,gCAEC;AArBD,iEAA+D;AAE/D,SAAgB,MAAM,CAAC,GAAW;IAChC,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AACD,SAAgB,WAAW,CAAC,GAAiB;IAC3C,0BAA0B;IAC1B,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,IAAA,4CAAqB,EAAC,GAAG,CAAC,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACtB,sCAAsC;IACxC,CAAC;SAAM,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAC;AACzC,CAAC;AACD,SAAgB,UAAU,CAAC,GAAW;IACpC,OAAO,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-configured-key.js","sourceRoot":"","sources":["../../../src/lib/utils/get-configured-key.ts"],"names":[],"mappings":";;AAGA,wDA+CC;AA/CD,SAAgB,sBAAsB,CACpC,GAAW,EACX,iBAAgE;IAEhE,IAAI,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAC7B,OAAO,GAAc,CAAC;IACxB,CAAC;IAED,SAAS,0BAA0B,CAAC,GAAW;QAC7C,IACE,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;YACpB,GAAG,CAAC,MAAM,GAAG,CAAC;YACd,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAC/B,CAAC;YACD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9B,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,SAAS,wBAAwB,CAAC,GAAW;QAC3C,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,wCAAwC;IACxC,MAAM,aAAa,GAAG,wBAAwB,CAC5C,0BAA0B,CAAC,GAAG,CAAC,CAChC,CAAC;IAEF,IAAI,aAAa,IAAI,iBAAiB,EAAE,CAAC;QACvC,OAAO,aAAwB,CAAC;IAClC,CAAC;IAED,KAAK,MAAM,aAAa,IAAI,iBAAiB,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAChD,IAAI,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO,aAAwB,CAAC;QAClC,CAAC;QACD,4CAA4C;QAC5C,IAAI,MAAM,EAAE,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACxE,OAAO,aAAwB,CAAC;QAClC,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -13,6 +13,8 @@ function readDefaultValue(option) {
|
|
|
13
13
|
const factory = declaredDefault.factory;
|
|
14
14
|
return [factory(), declaredDefault.description];
|
|
15
15
|
}
|
|
16
|
+
// Plain object default (e.g., for object options with default: { foo: 'bar' })
|
|
17
|
+
return [declaredDefault, undefined];
|
|
16
18
|
}
|
|
17
19
|
else {
|
|
18
20
|
return [declaredDefault, undefined];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-default-value.js","sourceRoot":"","sources":["../../../src/lib/utils/read-default-value.ts"],"names":[],"mappings":";;AAOA,4CAsBC;AAtBD,SAAgB,gBAAgB,CAC9B,MAAS;IAET,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,eAAe,GAAG,MAAM,CAAC,OAA4B,CAAC;QAC5D,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;YACxC,IAAI,OAAO,IAAI,eAAe,EAAE,CAAC;gBAC/B,MAAM,KAAK,GAAG,eAAe,CAAC,KAAqC,CAAC;gBACpE,OAAO,CAAC,KAAK,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,SAAS,IAAI,eAAe,EAAE,CAAC;gBACjC,MAAM,OAAO,GACX,eAAe,CAAC,OAA6C,CAAC;gBAChE,OAAO,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;YAClD,CAAC;YACD,+EAA+E;YAC/E,OAAO,CAAC,eAA+C,EAAE,SAAS,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IACD,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAChC,CAAC"}
|