argv-parse

Parse command line arguments.

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
argv-parse
401.0.17 years ago7 years agoMinified + gzip package size for argv-parse in KB

Readme

argv-parse
!npmnpm-imagenpm-url !travistravis-imagetravis-url !standardstandard-imagestandard-url
Parse command line arguments. This is a lot like yargs or optimist but not as feature rich.
You can specify flags, aliases, or not. Can pass arrays, strings, and booleans. No dependencies.
If you don't need array arguments, I'd recommend using minimist which is very good.

Install

npm install argv-parse

Usage

Say you had a file like foo-bar-qux.js which needed to parse arguments:
var argv = require('argv-parse')

// accepts a definition object and args
// if args is undefined, defaults to process.argv.slice(2)
var args = argv({
  foo: {
    type: 'boolean',
    alias: 'f'
  },
  bar: {
    type: 'string',
    alias: 'b'
  },
  qux: {
    type: 'array',
    alias: 'q'
  },
  norf: {
    type: 'boolean',
    alias: 'n'
  }
})
console.dir(args)

$ node foo-bar-qux.js --foo
{
  foo: true
}

$ node foo-bar-qux.js --bar hey
{
  bar: 'hey'
}

$ node foo-bar-qux.js --qux thing1 thing2 thing3
{
  qux: ['thing1', 'thing2', 'thing3']
}

$ node foo-bar-qux.js -f -b hey -q thing1 thing2 thing3
{
  foo: true,
  bar: 'hey',
  qux: ['thing1', 'thing2', 'thing3']
}

$ node foo-bar-qux.js -fn
{
  foo: true,
  norf: true
}

$ node foo-bar-qux.js not specified
{
  _: ['not', 'specified']
}

$ node foo-bar-qux.js --unknown surprise
{
  unknown: 'surprise'
}

If you don't care about aliases or types, you don't actually need to configure anything, argv-parse will intelligently guess how the unknown flag should be interpreted:
simple.js
var argv = require('argv-parse')
var args = argv()
console.dir(args)

$ node simple.js --unknown
{
  unknown: true
}

$ node simple.js --unknown hey
{
  unknown: 'hey'
}

$ node simple.js --unknown hey you
{
  unknown: ['hey', 'you']
}

$ node simple.js first second --unknown hey you
{
  _: ['first', 'second'],
  unknown: ['hey', 'you']
}

License

ISC