A minimum-viable arguments parser in ~90 LOC with zero dependencies
Features
- Casts values to the appropriate JavaScript primitive type
- Converts option keys to camelCase
- Throws on duplicated options
- Stops parsing options after
--
- Prints the supplied version on
--version
or-v
- Prints the supplied help message on
--help
or-h
Example
$ npm install --save clinical
#!/usr/bin/env node try const result = console catch error console process
$ my-cli --foo --bar 42 -x=y -- baz null
$ my-cli --version1.0.0
$ my-cli --helpmy help message
API
const result = clinical(version, helpMessage [, args = process.argv.slice(2)])
version
(string
) – Required. Writes this string tostdout
on encountering the--version
or-v
flag, then exits theprocess
.helpMessage
(string
) – Required. Writes this string tostdout
on encountering the--help
or-h
flag, then exits theprocess
.args
(Array<string>
) – Optional. The arguments to be parsed. Defaults toprocess.argv.slice(2)
.
The returned result
object has the following keys:
positionals
(Array<boolean | null | number | string>
)options
({ [key: string]: boolean | null | number | string }
)
Installation
$ npm install --save clinical