Skip to content

Commit b62bbc2

Browse files
authored
Merge pull request #11 from fulll/fix/commander-help-exitcode
fix: handle commander.help exit code for `help <cmd>` invocation
2 parents d820a1e + 1964e20 commit b62bbc2

1 file changed

Lines changed: 13 additions & 3 deletions

File tree

github-issue-ops.ts

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -249,9 +249,19 @@ function collect(value: string, previous: string[]): string[] {
249249
}
250250

251251
function exitOnError(err: Error): never {
252-
// Commander throws CommanderError on --help / --version — ignore those
253-
if ((err as { code?: string }).code === "commander.helpDisplayed") process.exit(0);
254-
if ((err as { code?: string }).code === "commander.version") process.exit(0);
252+
// Commander throws CommanderError on --help / --version — ignore those.
253+
// Possible codes: "commander.helpDisplayed" (--help flag) or "commander.help"
254+
// (built-in `help <cmd>` invocation). Both have exitCode 0.
255+
const code = (err as { code?: string; exitCode?: number }).code;
256+
const exitCode = (err as { exitCode?: number }).exitCode;
257+
if (
258+
code === "commander.helpDisplayed" ||
259+
code === "commander.help" ||
260+
code === "commander.version" ||
261+
exitCode === 0
262+
) {
263+
process.exit(0);
264+
}
255265
const prefix = HAS_COLOR ? pc.red("Error: ") : "Error: ";
256266
writeFileSync(2, `${prefix}${err.message}\n`);
257267
process.exit(1);

0 commit comments

Comments
 (0)