deno_minimist
💾 Parses command line arguments.
Port & rewrite to deno & typescript of the node library minimist.
example
// parse.ts
import parseArgs from 'https://deno.land/x/deno_minimist@v1.0.2/mod.ts';
parseArgs(Deno.args);$ deno run ./examples/parse.ts -a beep -b boop
{ _: [], a: 'beep', b: 'boop' }$ deno run ./examples/parse.ts -x 3 -y 4 -n5 -abc --beep=boop foo bar baz
{ _: [ 'foo', 'bar', 'baz' ],
x: 3,
y: 4,
n: 5,
a: true,
b: true,
c: true,
beep: 'boop' }API
import parseArgs from 'https://deno.land/x/deno_minimist@v1.0.2/mod.ts';
parseArgs(Deno.args);const argv = parseArgs(args, opts={})
Returns an argument object argv populated with the array arguments from args.
argv._ contains all the arguments that didn’t have an option associated with
them.
Numeric-looking arguments will be returned as numbers unless opts.string or
opts.boolean is set for that argument name.
Any arguments after '--' will not be parsed and will end up in argv._.
options can be:
opts.string- a string or array of strings argument names to always treat as stringsopts.boolean- a boolean, string or array of strings to always treat as booleans. iftruewill treat all double hyphenated arguments without equal signs as boolean (e.g. affects--foo, not-for--foo=bar)opts.alias- an object mapping string names to strings or arrays of string argument names to use as aliasesopts.default- an object mapping string argument names to default valuesopts.stopEarly- when true, populateargv._with everything after the first non-optionopts['--']- when true, populateargv._with everything before the--andargv['--']with everything after the--. Here’s an example:
import parseArgs from 'https://deno.land/x/deno_minimist@v1.0.2/mod.ts';
parseArgs('one two three -- four five --six'.split(' '), {'--': true });Note that with opts['--'] set, parsing for arguments still stops after the
--.
opts.unknown- a function which is invoked with a command line parameter not defined in theoptsconfiguration object. If the function returnsfalse, the unknown option is not added toargv.
Relevant changes compared to minimist
An explicit TypeError is raised if the input is falsy.
--constructoroption is supported.Added few tests.
Improved accuracy and ergonomics of typescript types.
The returned payload is an object created using
Object.create(null), hence does not have instance methods liketoString:
import parseArgs from 'https://deno.land/x/deno_minimist@v1.0.2/mod.ts';
parse(Deno.args).toString(); // BAD - `TypeError: parse(...).toString is not a function`
parse(Deno.args) + ""; // BAD - `TypeError: parse(...).toString is not a function`
Object.prototype.toString.call(parse(Deno.args)); // OK `[object Object]`
JSON.stringify(parse(['--foo'])); // OK `{"_":[],"foo":true}`