Add support to print help/usage of util.parseArgs
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- JavaScript
- Sterne
- 122k
- Forks
- 37.3k
- Ø Merge
- 4 T. 2 Std.
- Gemergte PRs (30 T.)
- 283
Beschreibung
What is the problem this feature will solve?
An almost ubiquitous practice of writing a CLI is including a help command in the CLI itself. Currently anyone using util.parseArgs needs to write their own help command. This, in my opinion, makes parseArgs incomplete.
What is the feature you are proposing to solve the problem?
My suggestion is to include the ability to prin help/usage information generated directly from the config given to parseArgs. A minimum would be something along the lines of:
- Include help text for each ParseArgsOptionConfig to include help text for each option in particula:
foo: {
type: 'boolean',
short: 'f',
help: 'enable foo',
},
- Add a main help text to the ParseArgsConfig as well, to include details on what the CLI as a whole:
parseArgs({
help: 'Use this command to achieve foo',
options: {
// ...
}
});
- Add the
--help/-hoption to print the generated usage information either:
- always add the
--help/-hoption, and automatically print the usage and exit the process when parsing the args (E.g. how python's builtinargparsedoes it); this would be a breaking change since it may conflict with other similar options implemented already. - add a new option to the ParseArgsConfig to enable autogenerated help option if desired
parseArgs({
enableHelp: true,
help: 'Use this command to achieve foo',
options: {
// ...
}
});
- simply provide a method to print the usage and let the user implement it themselves in userland
const { values, positionals, printUsage } = parseArgs({
help: 'Use this command to achieve foo',
options: {
help: {
type: "boolean",
short: "h",
help: "print command line options and exit"
}
}
});
if (values.help) {
printUsage();
process.exit(0);
}
What alternatives have you considered?
No response
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne beim Einstiegspunkt util.parseArgs und überprüfe das bestehende Verhalten von ParseArgsConfig und ParseArgsOptionConfig. Kläre, welche API zur Generierung der Hilfe und welches Verhalten von --help/-h unterstützt werden sollen; die Arbeit ist abgeschlossen, wenn das gewählte Design für die Nutzungstexte von Befehlen und Optionen implementiert ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- javascript, node.js
- Bereich
- cli
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Ruhig
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 35/100