673
.fail(parsed.error.message, parsed.error);
674
} else {
675
>
// only copy over positional keys (don't overwrite
command.ts
676
>
// flag arguments that were already parsed).
677
>
const positionalKeys = Object.keys(positionalMap);
678
>
Object.keys(positionalMap).forEach(key => {
679
>
positionalKeys.push(...parsed.aliases[key]);
680
>
});
681
>
682
>
Object.keys(parsed.argv).forEach(key => {
683
>
if (positionalKeys.includes(key)) {
684
>
// any new aliases need to be placed in positionalMap, which
685
>
// is used for validation.
686
>
if (!positionalMap[key]) positionalMap[key] = parsed.argv[key];
687
>
// Addresses: https://github.com/yargs/yargs/issues/1637
688
>
// If both positionals/options provided,
689
>
// and no default or config values were set for that key,
690
>
// and if at least one is an array: don't overwrite, combine.
691
>
if (
692
>
!this.isInConfigs(yargs, key) &&
693
>
!this.isDefaulted(yargs, key) &&
694
>
Object.prototype.hasOwnProperty.call(argv, key) &&
695
>
Object.prototype.hasOwnProperty.call(parsed.argv, key) &&
696
(Array.isArray(argv[key]) || Array.isArray(parsed.argv[key]))
698
argv[key] = ([] as string[]).concat(argv[key], parsed.argv[key]);
700
argv[key] = parsed.argv[key];
701
}
703
>
});
704
>
}
705
}
706
// Check defaults for key (and camel case version of key)
707
isDefaulted(yargs: YargsInstance, key: string): boolean {
708
>
const {default: defaults} = yargs.getOptions();
command.ts
709
>
return (
710
>
Object.prototype.hasOwnProperty.call(defaults, key) ||
711
Object.prototype.hasOwnProperty.call(
712
defaults,
713
this.shim.Parser.camelCase(key)
715
>
);
716
>
}
717
// Check each config for key (and camel case version of key)
718
isInConfigs(yargs: YargsInstance, key: string): boolean {
719
>
const {configObjects} = yargs.getOptions();
command.ts
720
>
return (
721
>
configObjects.some(c => Object.prototype.hasOwnProperty.call(c, key)) ||
722
>
configObjects.some(c =>
723
Object.prototype.hasOwnProperty.call(c, this.shim.Parser.camelCase(key))
725
>
);
726
>
}
727
runDefaultBuilderOn(yargs: YargsInstance): unknown | Promise<unknown> {
728
if (!this.defaultCommand) return;