type-args
v0.2.1
Published
The node.js command line options parser which plays well with TypeScript.
Downloads
822
Readme
type-args
The node.js options parser that plays well with TypeScript. To fetch the TypeScript interface from the option rules is extremely hard. However, type-args tries its best to make coding experience of command line option parsing more intelligent.
This is a minimalist implementation. And its algorithms are optimized. It's without annoying command interfaces.
Installation
Install this package with npm
.
npm i type-args -s
Usage
Define your parsing rules
const rules = {
'help': {
alias: 'h',
desc: 'display help.',
type: 'boolean'
},
'version': {
alias: 'v',
desc: 'display version.',
type: 'boolean'
},
'verbose': {
alias: 'V',
desc: 'verbose output.',
type: 'boolean',
default: true
},
'files': {
alias: 'f',
desc: 'the files to be transformed',
type: 'string[]'
}
}
The parsing rule is an object with camel cased flag names as keys, and descriptor objects as values. The descriptor object has 4 values.
- alias, single character string as the shortcut of the flag.
- desc, a string represents the description of the options.
- type, 'boolean' | 'number' | 'string' | 'number[]' | 'string[]'.
- default, the default value of the option.
Parsing ARGV
import { parse } from 'type-args';
const [options, args, unknownOptions] = parse(process.argv, rules);
- options is an object of parsed values.
- args is an array of non option tokens.
- unknownOptions is an array of undefined flags passed from argv.
Merging saved options
You can pass unlimited amount of saved options. Imagine you are the author of a
large framework. You read options from package.json
, from the .rcfile
and
user command line arguments. You may want merging those together with precedence
like this:
default value < package.json < .rcfile < user command line arguments
type-args does what you want by accepting the ...third arguments.
License
MIT © Zhang Kai Yu