0.1.9 • Published 10 years ago

kenra v0.1.9

Weekly downloads
1
License
MIT
Repository
github
Last release
10 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

10 years ago

0.1.8

10 years ago

0.1.7

10 years ago

0.1.6

10 years ago

0.1.4

10 years ago

0.1.3

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago

0.0.9

10 years ago

0.0.7

10 years ago

0.0.6

10 years ago

0.0.5

10 years ago

0.0.4

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago