Description
get-arguments
package gets the process.argv
and returns object with command and arguments passed by the user in the command line.
Quick start
npm install get-arguments
Considering that there is "bin" : { "myapp" : "./cli.js" }
in your package.json
file:
If there is a limited number of valid commands, use:
//cli.jsconst args = ; const commandName = "myapp"; //your CLI command nameconst validCommands = 'init''config''update''list''build'; //your allowed commands ;
If the user types incorrect command, the following message in the command line is printed:
Usage: myapp <command>
where <command> is one of:
init,
config,
update,
list,
build
If the user is allowed to type any command, use:
//cli.jsconst args = ; ;
CLI arguments syntax:
Acceptable:
The user can pass a command with:
- no arguments
- only argument value(s)
- argument pair(s) of name and value(s)
> myapp command
> myapp command valA valB valC
> myapp command -p val
> myapp command --param val
> myapp command -p valueA valueB valueC --force
> myapp command --name John --age 25 --title "New Project"
Unacceptable:
> myapp command valA valB --param
> myapp command valA valB -p
If the user types incorrect arguments syntax, the following message in the command line is printed:
Invalid arguments.
Behaviour
> myapp init
command:'init' args:
> myapp build a b c
command:'build' args:'a''b''c'
> myapp config --get name title age
command:'config' args: '--get':'name''title''age'
> myapp config --get name title age --set title "New Title"
command:'config' args: '--get':'name''title''age' '--set':'title''New Title'
> myapp init --path ./project --async -f
command:'init' args: '--path':'./project' '--async': '-f':