kenra

0.1.9 • Public • Published

Kenra

Build Status Build status

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 strings
  • options.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 aliases
  • options.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 values
  • options.stopEarly - when true, populate argv._ with everything after the first non-option
  • opts['--'] - 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

Package Sidebar

Install

npm i kenra

Weekly Downloads

18

Version

0.1.9

License

MIT

Last publish

Collaborators

  • zubuzon