wargs
Wrong args parser
Last updated 2 months ago by pateketrueke .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install wargs 
SYNC missed versions from official npm registry.

Why a wrong args parser?

tl-dr; I didn't wrote a parser.

Build Status NPM version Coverage Status

Instead, I used regular expressions for extracting values, flags and other kind of parameters from a string or from an argv-like array.

I've tried commander, minimist, yargs, etc. but no one fulfilled my exact requirements, e.g.

const str = '/ _csrf=`token` --json accept:"text/plain; charset=utf8" -- x';
const argv = ['/', '_csrf=`token`', '--json', 'accept:text/plain; charset=utf8', '--', 'x'];

Both values are representing the same input, the former can be taken from any source while the latter is usually provided by process.argv.slice(2), etc.

Most importantly: these modules will won't work with a string as input.

wargs will do and return: _, raw, data, flags and params.

{
  _: ['/'],
  raw: ['x'],
  data: { _csrf: '`token`' },
  flags: { json: true },
  params: { accept: 'text/plain; charset=utf8' },
}

Hint: It suits -and feels- very well on a repl for making http requests. ;-)

How it works

wargs use getopts to understand regular flags, -short or --long, etc.

Also it will collect key:value and key=value values as params and data respectively.

wargs('-x').flags.x; // true
wargs('--x').flags.x; // true
wargs('x:y').params.x; // y
wargs('x=y').data; // { x: 'y' }
wargs('x y')._ // ['x', 'y']
wargs('--x-y', { camelCase: true }).flags; // { xY: true }
wargs('-x y', { format: v => v.toUpperCase() }).flags; // { x: 'Y' }

Options

  • format — function decorator for all values
  • camelCase — normalize keys from --camel-case to camelCase
  • alias, boolean, default and unknown — those are given as is to getopts

Fun facts

  • When I was looking for a name for this module I found that xargs, yargs and zargs already existed
  • I'm totally wrong on calling this module a "parser" for command line arguments, don't be rude
  • Finally, I discovered that wargs are a thing from GoT

OrellWarg

Current Tags

  • 0.9.2                                ...           latest (2 months ago)

23 Versions

  • 0.9.2                                ...           2 months ago
  • 0.9.1                                ...           8 months ago
  • 0.9.0                                ...           a year ago
  • 0.8.6                                ...           a year ago
  • 0.8.5                                ...           a year ago
  • 0.8.4                                ...           a year ago
  • 0.8.3                                ...           a year ago
  • 0.8.2                                ...           2 years ago
  • 0.8.1                                ...           3 years ago
  • 0.8.0                                ...           3 years ago
  • 0.7.2                                ...           3 years ago
  • 0.7.1                                ...           3 years ago
  • 0.7.0                                ...           3 years ago
  • 0.5.0                                ...           3 years ago
  • 0.4.0                                ...           4 years ago
  • 0.3.0                                ...           4 years ago
  • 0.2.4                                ...           4 years ago
  • 0.2.3                                ...           4 years ago
  • 0.2.2                                ...           4 years ago
  • 0.2.1                                ...           4 years ago
  • 0.2.0                                ...           4 years ago
  • 0.1.0                                ...           4 years ago
  • 0.0.0                                ...           4 years ago
Maintainers (1)
Downloads
Today 1
This Week 1
This Month 6
Last Day 0
Last Week 0
Last Month 62
Dependencies (1)
Dev Dependencies (14)

Copyright 2014 - 2016 © taobao.org |