UNPKG

527 BJavaScriptView Raw
1
2
3exports.opts = opts
4
5function opts(argv, defaults) {
6 var hasOwn = {}.hasOwnProperty
7 for (var arg, conf = Object.assign({_:[]}, defaults), i = 0; i < argv.length; ) {
8 arg = argv[i++].split(/=|--(no-)?/)
9 if (arg[0] === "") {
10 if (hasOwn.call(defaults, arg[2])) {
11 conf[arg[2]] = cast(arg[1] ? "" : arg[4], defaults[arg[2]])
12 argv.splice(--i, 1)
13 } else {
14 push(conf._, arg[2])
15 }
16 }
17 }
18 return conf
19
20 function castError(key, msg) {
21 throw "Invalid value for option '" + key + "' - expected " + msg
22 }
23}
24