parse argument options
This module is minimist refactored as a fluent class ~125% faster.
var argv = require('funwithflags')(process.argv.slice(2));
console.log(argv);
yarn add funwithflags --dev
npm install funwithflags --save-dev
Name | Type | Description | ?Default | Example |
---|---|---|---|---|
string | string | Array<string> |
names to always treat as strings | null |
|
boolean | boolean | string | Array<string> |
always treat as booleans. if true will treat all double hyphenated arguments without equal signs. (e.g. affects --foo , not -f or --foo=bar ) |
null |
|
alias | Object |
an object mapping string names to strings or arrays of string names to use as aliases | {} |
|
default | Object |
an object mapping string argument names to default values | {} |
|
['--'] |
boolean |
populate argv._ with everything before the -- and argv['--'] with everything after the -- |
null |
|
stopEarly | boolean |
when true, populate argv._ with everything after the first non-option |
null |
|
unknown | Function |
a function which is invoked with a command line parameter not defined in the opts configuration object. If the function returns false , the unknown option is not added to argv |
null |
|
obj | boolean |
when true, returns the object instance of FunWithFlags | null |
|
vars | boolean |
when true, allows args without dashes to be used as flags | null |
|
camel | boolean |
when true, camelCases object keys on argv | null |
|
underscore | boolean |
when false, object is returned with no _ (for looping over object keys or values or the like) |
null |
- tests use ava
- benchmarks use benchmark.js with bench-chain
var unknown = []
// captures the unknown args, similar to how `vars` does
function unknownFn(arg) {
unknown.push(arg)
return true
}
var opts = {
'default': {
'moose.box': 11,
'eh': true,
'igloo': false,
},
'alias': {
'moose.box': 'mooses.boxes',
'rain': 'british-columbia',
},
'boolean': ['eh', 'igloo'],
'string': ['country', 'nan', 'noflag'],
'vars': true,
'--': true,
'obj': true, // will return the instance
'unknown': unknownFn,
}
var args = [
'--country=canada',
// aliased to `rain` so it will have `rain: true, 'british-columbia': true`
'--british-columbia',
// no value is default a true boolean
'--igloo',
// dot notation
'--a.b=100',
// using `string: 'nan'` we ensure this stays as a string
'--nan',
'99',
// first flag is boolean (t: true)
// second flag assigned to following value (f: 555)
'-tf',
'555',
// mooses and globbing are parsed only because `vars: true``
'mooses.boxes=moozes',
'globbing',
`"**/*"`,
// after double dash
'--',
'dis-little-piggy',
'went-to-market',
]
var obj = require('../')(args, opts)
const argv = obj.argv