kenra
v0.1.9
Published
Parse argument options in same way as with Minimist, but with improved performance and more options
Downloads
11
Maintainers
Readme
Kenra
An argument parser similar to minimist
build for performance. Supports both CommonJS
and NodejS
modules
Features
- optimized for performance
- lightweight
- 100% minimist compatible
- supports node modules
- supports NodejS modules and CommonJS
Install
npm i -S kenra
Usage
Kenra exports a single method, and can be used as CommonJS module or a NodeJS module
Nodejs module
import 'kenra' from 'kenra';
let argv = kenra(process.argv.slice(2), opts={})
CommonJS
var argv = require('kenra')(process.argv.slice(2), opts={})
API
kenra(args, [options])
Return 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.
Any arguments after -- will not be parsed and will end up in argv._.
Options can be:
options.string
- a string or array of strings argument names to always treat as stringsoptions.boolean
- an array of strings to always treat as booleans.options.alias
- an object mapping string names to strings or arrays of string argument names to use as aliasesoptions.array
- an array of strings to treat as arrays. (only in rminimist)options.number
- an array of strings to treat as numbers. (only in rminimist)options.default
- an object mapping string argument names to default valuesoptions.stopEarly
- when true, populate argv._ with everything after the first non-optionopts['--']
- when true, populate argv._ with everything before the -- and argv['--'] with everything after the --.
Differences between Kenra and Minimist
Kenra is build for high performance, and prefer that you are explicit. It's 100% minimist compatible with a few exceptions:
Main differences:
- Aliases are not duplicated. They will always resolve to the canonical version.
- Booleans don't default to false (solves Minimist issue #94)
- Values are overridden, not appended as an array
- Order is always preserved (except for numeric keys).
- The unknown option is not supported.
- Unlike Minimist, number-like values are never auto-casted to numbers (solves Minimist issue #87). It has been introduced a number option instead.
// minimist
minimist(['--port', '4000'])
{ _: [], port: 4000 }
// Kenra
kenra(['--port', '4000'])
{ _: [], port: '4000' }
kenra(['--port', '4000'], { number: ['port'] })
{ _: [], port: 4000 }
- A new option
array
have been added to make values into an array.
minimist(['--watch=lib', '--watch=test'], { array: ['watch'] })
// kenra
{ _: [], watch: ['lib', 'test'] }
Powered by: ZubuZon