funwithflags
v1.0.2
Published
parse argument options
Downloads
73
Maintainers
Readme
🚩 funwithflags
parse argument options
This module is minimist refactored as a fluent class ~125% faster.
📘 examples
var argv = require('funwithflags')(process.argv.slice(2));
console.log(argv);
📦 install
yarn add funwithflags --dev
npm install funwithflags --save-dev
⚙ options
| 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
|
extending the class
🔬 tests
- tests use ava
🏋️ benchmarks
- benchmarks use benchmark.js with bench-chain
verbose
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