clinical
TypeScript icon, indicating that this package has built-in type declarations

0.0.2 • Public • Published

clinical npm Version build

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
 
import clinical from 'clinical'
 
try {
  const result = clinical('1.0.0', 'my help message')
  console.log(result)
} catch (error) {
  console.error(error.message)
  process.exit(1)
}
$ my-cli --foo --bar 42 -x=y -- baz null
{
  options: { foo: true, bar: 42, x: 'y' },
  positionals: [ 'baz', null ]
}
$ my-cli --version
1.0.0
$ my-cli --help
my help message

API

import clinical from 'clinical'

const result = clinical(version, helpMessage [, args = process.argv.slice(2)])

  • version (string) – Required. Writes this string to stdout on encountering the --version or -v flag, then exits the process.
  • helpMessage (string) – Required. Writes this string to stdout on encountering the --help or -h flag, then exits the process.
  • args (Array<string>) – Optional. The arguments to be parsed. Defaults to process.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

License

MIT

Package Sidebar

Install

npm i clinical

Weekly Downloads

1

Version

0.0.2

License

MIT

Unpacked Size

7.89 kB

Total Files

6

Last publish

Collaborators

  • yuanqing