0.1.1 • Published 9 years ago
nested-opts v0.1.1
nested-opts
Deeply nested command line options parser
Example
cli.js
var nested = require('nested-opts')
var config = {
commands: {
server: {
commands: {
add: {
options: {
host: { type: 'String' },
port: { type: 'Int' }
}
},
update: {
options: {
id: { type: 'String' },
host: { type: 'String' },
port: { type: 'Int' }
}
}
},
options: {
help: true
}
}
}
}
var opts = nested(config)
console.log(opts)
/*
> node cli.js server add host localhost port 8080
{
valid: true,
args: ['server', 'add', 'host', 'localhost', 'port', '8080'],
command: 'server',
options: false,
subcommand: {
command: 'add',
options: {
host: 'localhost',
port: 8080
}
}
}
> node cli.js server help
{
valid: true,
args: ['server', 'help'],
command: 'server',
options: {
help: true
}
}
*/API
nested ( config )
Parameters
config{Object}options{Object}silent=false{Boolean} - When true do not print outputerror{Function} - Custom error printing function
commands{CommandList}
Returns NestedOutput
Types
CommandList
[commandName] : {
commands: [CommandList],
options: [OptionList]
}OptionList
[optionName]: OptionConfig | trueOptionConfig
{
type: OptionTypeEnum
}OptionTypeEnum
'String' | 'Number' | 'Int' | 'Array' | 'JSON' | 'Date'KeyValuePair
[key]: AnyNestedOutput
{
args: Array<String>,
valid: Boolean,
command: String,
options: {
KeyValuePair
},
subcommand: {
options: {
KeyValuePair
},
subcommand: { ... }
}
}