Skip to content

Commit

Permalink
refactor how onlyArg is handled
Browse files Browse the repository at this point in the history
  • Loading branch information
james-hu committed Mar 10, 2024
1 parent 8e4334a commit 743d03c
Showing 1 changed file with 19 additions and 13 deletions.
32 changes: 19 additions & 13 deletions src/oclif-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,24 +39,30 @@ export function generateHelpText<T extends Command>(commandInstance: T, options?
}

export async function withHelpHandled<T extends { argv: string[]; log: Command['log']; exit: Command['exit']; new(...args: any): any}, O>(commandInstance: InstanceType<T>, parse: () => Promise<O>, options?: Partial<Interfaces.HelpOptions>): Promise<O> {
const firstArg = commandInstance.argv?.[0];
if (commandInstance.argv?.length === 1 && (firstArg === '--help' || firstArg === '-h')) {
async function printPrettyHelp() {
let cliOptions;
let parsingError;
try {
cliOptions = await parse();
} catch (error) {
parsingError = error;
}

const onlyArg = commandInstance.argv?.length === 1 ? commandInstance.argv[0] : undefined;
switch(onlyArg) {
case '--help':
case '-h': {
const helpText = await generateHelpText(commandInstance, options);
commandInstance.log(helpText);
commandInstance.exit(0);
break;
}
}

try {
await printPrettyHelp();
} catch {
try {
await parse();
} catch {}
await printPrettyHelp();
}
commandInstance.exit(0);
if (cliOptions) {
return cliOptions;
} else {
throw parsingError;
}
return parse();
}

/**
Expand Down

0 comments on commit 743d03c

Please sign in to comment.