minimist 1.1.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +19 -19
- package/package.json +12 -9
- package/test/all_bool.js +1 -1
- package/test/default_bool.js +15 -0
- package/test/parse_modified.js +1 -1
package/index.js
CHANGED
|
@@ -65,6 +65,25 @@ module.exports = function (args, opts) {
|
|
|
65
65
|
setKey(argv, x.split('.'), value);
|
|
66
66
|
});
|
|
67
67
|
}
|
|
68
|
+
|
|
69
|
+
function setKey (obj, keys, value) {
|
|
70
|
+
var o = obj;
|
|
71
|
+
keys.slice(0,-1).forEach(function (key) {
|
|
72
|
+
if (o[key] === undefined) o[key] = {};
|
|
73
|
+
o = o[key];
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
var key = keys[keys.length - 1];
|
|
77
|
+
if (o[key] === undefined || flags.bools[key] || typeof o[key] === 'boolean') {
|
|
78
|
+
o[key] = value;
|
|
79
|
+
}
|
|
80
|
+
else if (Array.isArray(o[key])) {
|
|
81
|
+
o[key].push(value);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
o[key] = [ o[key], value ];
|
|
85
|
+
}
|
|
86
|
+
}
|
|
68
87
|
|
|
69
88
|
for (var i = 0; i < args.length; i++) {
|
|
70
89
|
var arg = args[i];
|
|
@@ -192,25 +211,6 @@ function hasKey (obj, keys) {
|
|
|
192
211
|
return key in o;
|
|
193
212
|
}
|
|
194
213
|
|
|
195
|
-
function setKey (obj, keys, value) {
|
|
196
|
-
var o = obj;
|
|
197
|
-
keys.slice(0,-1).forEach(function (key) {
|
|
198
|
-
if (o[key] === undefined) o[key] = {};
|
|
199
|
-
o = o[key];
|
|
200
|
-
});
|
|
201
|
-
|
|
202
|
-
var key = keys[keys.length - 1];
|
|
203
|
-
if (o[key] === undefined || typeof o[key] === 'boolean') {
|
|
204
|
-
o[key] = value;
|
|
205
|
-
}
|
|
206
|
-
else if (Array.isArray(o[key])) {
|
|
207
|
-
o[key].push(value);
|
|
208
|
-
}
|
|
209
|
-
else {
|
|
210
|
-
o[key] = [ o[key], value ];
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
|
|
214
214
|
function isNumber (x) {
|
|
215
215
|
if (typeof x === 'number') return true;
|
|
216
216
|
if (/^0x[0-9a-f]+$/i.test(x)) return true;
|
package/package.json
CHANGED
|
@@ -1,24 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "minimist",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "parse argument options",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"devDependencies": {
|
|
7
|
-
"
|
|
7
|
+
"covert": "^1.0.0",
|
|
8
8
|
"tap": "~0.4.0",
|
|
9
|
-
"
|
|
9
|
+
"tape": "^3.5.0"
|
|
10
10
|
},
|
|
11
11
|
"scripts": {
|
|
12
12
|
"test": "tap test/*.js",
|
|
13
13
|
"coverage": "covert test/*.js"
|
|
14
14
|
},
|
|
15
|
-
"testling"
|
|
16
|
-
"files"
|
|
17
|
-
"browsers"
|
|
15
|
+
"testling": {
|
|
16
|
+
"files": "test/*.js",
|
|
17
|
+
"browsers": [
|
|
18
18
|
"ie/6..latest",
|
|
19
|
-
"ff/5",
|
|
20
|
-
"
|
|
21
|
-
"
|
|
19
|
+
"ff/5",
|
|
20
|
+
"firefox/latest",
|
|
21
|
+
"chrome/10",
|
|
22
|
+
"chrome/latest",
|
|
23
|
+
"safari/5.1",
|
|
24
|
+
"safari/latest",
|
|
22
25
|
"opera/12"
|
|
23
26
|
]
|
|
24
27
|
},
|
package/test/all_bool.js
CHANGED
package/test/default_bool.js
CHANGED
|
@@ -18,3 +18,18 @@ test('boolean default false', function (t) {
|
|
|
18
18
|
t.equal(argv.somefalse, false);
|
|
19
19
|
t.end();
|
|
20
20
|
});
|
|
21
|
+
|
|
22
|
+
test('boolean default to null', function (t) {
|
|
23
|
+
var argv = parse([], {
|
|
24
|
+
boolean: 'maybe',
|
|
25
|
+
default: { maybe: null }
|
|
26
|
+
});
|
|
27
|
+
t.equal(argv.maybe, null);
|
|
28
|
+
var argv = parse(['--maybe'], {
|
|
29
|
+
boolean: 'maybe',
|
|
30
|
+
default: { maybe: null }
|
|
31
|
+
});
|
|
32
|
+
t.equal(argv.maybe, true);
|
|
33
|
+
t.end();
|
|
34
|
+
|
|
35
|
+
})
|
package/test/parse_modified.js
CHANGED