CLI arguments parser for node.js, with sub-commands support. Port of python's argparse (version 3.14.6).
Difference with original.
- JS has no keyword arguments support.
- Pass options instead:
new ArgumentParser({ description: 'example', add_help: true }).
- Pass options instead:
- JS has no python's types
int,float, ...- Use string-typed names:
.add_argument('-b', { type: 'int', help: 'help' }).
- Use string-typed names:
%rformat specifier usesrequire('util').inspect().
See the complete list of differences from Python. Users upgrading from v2 should read the migration guide.
Following code is a JS program that takes a list of integers and produces either the sum or the max:
const{ ArgumentParser }=require('argparse')constparser=newArgumentParser({description: 'Process some integers.'})letsum=ints=>ints.reduce((a,b)=>a+b)letmax=ints=>ints.reduce((a,b)=>a>b ? a : b)parser.add_argument('integers',{metavar: 'N',type: 'int',nargs: '+',help: 'an integer for the accumulator'})parser.add_argument('--sum',{dest: 'accumulate',action: 'store_const',const: sum,default: max,help: 'sum the integers (default: find the max)'});letargs=parser.parse_args()console.log(args.accumulate(args.integers))Assuming the JS code above is saved into a file called prog.js, it can be run at the command line and provides useful help messages:
$ node prog.js -h
usage: prog.js [-h] [--sum] N [N ...]
Process some integers.
positional arguments:
N an integer for the accumulator
options:
-h, --help show this help message and exit
--sum sum the integers (default: find the max)
When run with the appropriate arguments, it prints either the sum or the max of the command-line integers:
$ node prog.js 1 2 3 4
4
$ node prog.js 1 2 3 4 --sum
10
If invalid arguments are passed in, it will issue an error:
$ node prog.js a b c
usage: prog.js [-h] [--sum] N [N ...]
prog.js: error: argument N: invalid 'int' value: 'a'
This is an example ported from Python. You can find detailed explanation here.
Since this is a port with minimal divergence, there's no separate documentation. Use original one instead, with notes about difference.