0.1.9 • Published 8 years ago

kenra v0.1.9

Weekly downloads
1
License
MIT
Repository
github
Last release
8 years ago

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

0.1.9

8 years ago

0.1.8

8 years ago

0.1.7

8 years ago

0.1.6

8 years ago

0.1.4

8 years ago

0.1.3

8 years ago

0.1.2

8 years ago

0.1.1

8 years ago

0.1.0

8 years ago

0.0.9

8 years ago

0.0.7

8 years ago

0.0.6

8 years ago

0.0.5

8 years ago

0.0.4

8 years ago

0.0.3

8 years ago

0.0.2

8 years ago

0.0.1

8 years ago