1.0.2 • Published 7 years ago
funwithflags v1.0.2
🚩 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