0.1.9 • Published 8 years ago
kenra v0.1.9
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