argufy
![npm version](https://badge.fury.io/js/argufy.svg)
yarn add -E argufy
argufy
will parse command line arguments to Node.js CLI programs.
API
The package is available by importing its default function:
import argufy from 'argufy'
The package assumes that the arguments begin from the 3rd position, i.e.,
node example.js --title "Hello World"
argufy(
config: <string, ConfigItem>,
argv?: string[],
): object
The flags from the arguments will be extracted according to the configuration object and the arguments array. If arguments array is not passed, process.argv
is used to find arguments.
import argufy from 'argufy'
const config = {
title: { short: 't', command: true },
list: { short: 'l', boolean: true },
app: 'a',
delay: 'y',
file: 'f',
wait: { short: 'w', number: true },
'no-empty': 'e',
resize: 'z',
colors: 'c',
dir: 'D',
}
const res = argufy(config, process.argv)
console.log(JSON.stringify(res, null, 2))
node example.js --title Hello_World -w 10 -l -app Argufy
node example.js Hello_World -w 10 -l -app Argufy
{
"_argv": [],
"title": "Hello_World",
"list": true,
"app": "Argufy",
"wait": 10
}
The special _argv property
will be assigned to contain all unmatched arguments. For example, it can be used to pass any additional parameters through to other program.
ConfigItem
Type
The configuration for each flag can either be a shorthand string, or an object. If it is an object, it can include the following parameters:
Flag
: The flag passed to the program.
Name | Type | Description | Default |
---|
short | string | Shorthand for this argument, usually one letter. | - |
boolean | boolean | Whether the flag is a boolean and does not require a value. | false |
number | boolean | Specifies whether the flag should be parsed as a number. | false |
command | boolean | If set to true, the value is read from the first argument passed to the CLI command (e.g., $ cli command ). | false |
multiple | boolean | When using the command property, will parse the commands as an array. | false |
Copyright
(c) Art Deco 2019