Skip to content

Commit

Permalink
Use _getCommandAndAncestors() consistently
Browse files Browse the repository at this point in the history
  • Loading branch information
aweebit committed Aug 5, 2023
1 parent aa280af commit 777a452
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 16 deletions.
15 changes: 7 additions & 8 deletions lib/command.js
Original file line number Diff line number Diff line change
Expand Up @@ -1428,13 +1428,13 @@ Call on top-level command instead`);

_checkForMissingMandatoryOptions() {
// Walk up hierarchy so can call in subcommand after checking for displaying help.
for (let cmd = this; cmd; cmd = cmd.parent) {
this._getCommandAndAncestors().forEach((cmd) => {
cmd.options.forEach((anOption) => {
if (anOption.mandatory && (cmd.getOptionValue(anOption.attributeName()) === undefined)) {
cmd.missingMandatoryOptionValue(anOption);
}
});
}
});
}

/**
Expand Down Expand Up @@ -1475,9 +1475,9 @@ Call on top-level command instead`);
*/
_checkForConflictingOptions() {
// Walk up hierarchy so can call in subcommand after checking for displaying help.
for (let cmd = this; cmd; cmd = cmd.parent) {
this._getCommandAndAncestors().forEach((cmd) => {
cmd._checkForConflictingLocalOptions();
}
});
}

/**
Expand Down Expand Up @@ -1806,14 +1806,13 @@ Call on top-level command instead`);
if (flag.startsWith('--') && this._showSuggestionAfterError) {
// Looping to pick up the global options too
let candidateFlags = [];
let command = this;
do {
for (const command of this._getCommandAndAncestors()) {
const moreFlags = command.createHelp().visibleOptions(command)
.filter(option => option.long)
.map(option => option.long);
candidateFlags = candidateFlags.concat(moreFlags);
command = command.parent;
} while (command && !command._enablePositionalOptions);
if (command._enablePositionalOptions) break;
}
suggestion = suggestSimilar(flag, candidateFlags);
}

Expand Down
16 changes: 8 additions & 8 deletions lib/help.js
Original file line number Diff line number Diff line change
Expand Up @@ -101,10 +101,10 @@ class Help {
if (!this.showGlobalOptions) return [];

const globalOptions = [];
for (let parentCmd = cmd.parent; parentCmd; parentCmd = parentCmd.parent) {
const visibleOptions = parentCmd.options.filter((option) => !option.hidden);
cmd._getCommandAndAncestors().slice(1).forEach((ancestorCmd) => {
const visibleOptions = ancestorCmd.options.filter((option) => !option.hidden);
globalOptions.push(...visibleOptions);
}
});
if (this.sortOptions) {
globalOptions.sort(this.compareOptions);
}
Expand Down Expand Up @@ -240,11 +240,11 @@ class Help {
if (cmd._aliases[0]) {
cmdName = cmdName + '|' + cmd._aliases[0];
}
let parentCmdNames = '';
for (let parentCmd = cmd.parent; parentCmd; parentCmd = parentCmd.parent) {
parentCmdNames = parentCmd.name() + ' ' + parentCmdNames;
}
return parentCmdNames + cmdName + ' ' + cmd.usage();
let ancestorCmdNames = '';
cmd._getCommandAndAncestors().slice(1).forEach((ancestorCmd) => {
ancestorCmdNames = ancestorCmd.name() + ' ' + ancestorCmdNames;
});
return ancestorCmdNames + cmdName + ' ' + cmd.usage();
}

/**
Expand Down

0 comments on commit 777a452

Please sign in to comment.