summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/minimist/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/node_modules/minimist/index.js')
-rw-r--r--deps/npm/node_modules/minimist/index.js38
1 files changed, 19 insertions, 19 deletions
diff --git a/deps/npm/node_modules/minimist/index.js b/deps/npm/node_modules/minimist/index.js
index a5793cecce..584f551a6d 100644
--- a/deps/npm/node_modules/minimist/index.js
+++ b/deps/npm/node_modules/minimist/index.js
@@ -1,16 +1,16 @@
module.exports = function (args, opts) {
if (!opts) opts = {};
-
+
var flags = { bools : {}, strings : {} };
-
+
[].concat(opts['boolean']).filter(Boolean).forEach(function (key) {
flags.bools[key] = true;
});
-
+
[].concat(opts.string).filter(Boolean).forEach(function (key) {
flags.strings[key] = true;
});
-
+
var aliases = {};
Object.keys(opts.alias || {}).forEach(function (key) {
aliases[key] = [].concat(opts.alias[key]);
@@ -20,14 +20,14 @@ module.exports = function (args, opts) {
}));
});
});
-
+
var defaults = opts['default'] || {};
-
+
var argv = { _ : [] };
Object.keys(flags.bools).forEach(function (key) {
setArg(key, defaults[key] === undefined ? false : defaults[key]);
});
-
+
var notFlags = [];
if (args.indexOf('--') !== -1) {
@@ -40,15 +40,15 @@ module.exports = function (args, opts) {
? Number(val) : val
;
setKey(argv, key.split('.'), value);
-
+
(aliases[key] || []).forEach(function (x) {
setKey(argv, x.split('.'), value);
});
}
-
+
for (var i = 0; i < args.length; i++) {
var arg = args[i];
-
+
if (/^--.+=/.test(arg)) {
// Using [\s\S] instead of . because js doesn't support the
// 'dotall' regex modifier. See:
@@ -79,23 +79,23 @@ module.exports = function (args, opts) {
}
else if (/^-[^-]+/.test(arg)) {
var letters = arg.slice(1,-1).split('');
-
+
var broken = false;
for (var j = 0; j < letters.length; j++) {
var next = arg.slice(j+2);
-
+
if (next === '-') {
setArg(letters[j], next)
continue;
}
-
+
if (/[A-Za-z]/.test(letters[j])
&& /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) {
setArg(letters[j], next);
broken = true;
break;
}
-
+
if (letters[j+1] && letters[j+1].match(/\W/)) {
setArg(letters[j], arg.slice(j+2));
broken = true;
@@ -105,7 +105,7 @@ module.exports = function (args, opts) {
setArg(letters[j], flags.strings[letters[j]] ? '' : true);
}
}
-
+
var key = arg.slice(-1)[0];
if (!broken && key !== '-') {
if (args[i+1] && !/^(-|--)[^-]/.test(args[i+1])
@@ -129,17 +129,17 @@ module.exports = function (args, opts) {
);
}
}
-
+
Object.keys(defaults).forEach(function (key) {
if (!hasKey(argv, key.split('.'))) {
setKey(argv, key.split('.'), defaults[key]);
-
+
(aliases[key] || []).forEach(function (x) {
setKey(argv, x.split('.'), defaults[key]);
});
}
});
-
+
notFlags.forEach(function(key) {
argv._.push(key);
});
@@ -163,7 +163,7 @@ function setKey (obj, keys, value) {
if (o[key] === undefined) o[key] = {};
o = o[key];
});
-
+
var key = keys[keys.length - 1];
if (o[key] === undefined || typeof o[key] === 'boolean') {
o[key] = value;