minimist
Advanced tools
Comparing version 1.1.0 to 1.1.1
38
index.js
@@ -68,2 +68,21 @@ module.exports = function (args, opts) { | ||
} | ||
function setKey (obj, keys, value) { | ||
var o = obj; | ||
keys.slice(0,-1).forEach(function (key) { | ||
if (o[key] === undefined) o[key] = {}; | ||
o = o[key]; | ||
}); | ||
var key = keys[keys.length - 1]; | ||
if (o[key] === undefined || flags.bools[key] || typeof o[key] === 'boolean') { | ||
o[key] = value; | ||
} | ||
else if (Array.isArray(o[key])) { | ||
o[key].push(value); | ||
} | ||
else { | ||
o[key] = [ o[key], value ]; | ||
} | ||
} | ||
@@ -196,21 +215,2 @@ for (var i = 0; i < args.length; i++) { | ||
function setKey (obj, keys, value) { | ||
var o = obj; | ||
keys.slice(0,-1).forEach(function (key) { | ||
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; | ||
} | ||
else if (Array.isArray(o[key])) { | ||
o[key].push(value); | ||
} | ||
else { | ||
o[key] = [ o[key], value ]; | ||
} | ||
} | ||
function isNumber (x) { | ||
@@ -217,0 +217,0 @@ if (typeof x === 'number') return true; |
{ | ||
"name": "minimist", | ||
"version": "1.1.0", | ||
"version": "1.1.1", | ||
"description": "parse argument options", | ||
"main": "index.js", | ||
"devDependencies": { | ||
"tape": "~1.0.4", | ||
"covert": "^1.0.0", | ||
"tap": "~0.4.0", | ||
"covert": "^1.0.0" | ||
"tape": "^3.5.0" | ||
}, | ||
@@ -15,9 +15,12 @@ "scripts": { | ||
}, | ||
"testling" : { | ||
"files" : "test/*.js", | ||
"browsers" : [ | ||
"testling": { | ||
"files": "test/*.js", | ||
"browsers": [ | ||
"ie/6..latest", | ||
"ff/5", "firefox/latest", | ||
"chrome/10", "chrome/latest", | ||
"safari/5.1", "safari/latest", | ||
"ff/5", | ||
"firefox/latest", | ||
"chrome/10", | ||
"chrome/latest", | ||
"safari/5.1", | ||
"safari/latest", | ||
"opera/12" | ||
@@ -24,0 +27,0 @@ ] |
@@ -26,3 +26,3 @@ var parse = require('../'); | ||
tacos: 'good', | ||
p: '55', | ||
p: 55, | ||
_: ['moo', 'cow'] | ||
@@ -29,0 +29,0 @@ }); |
@@ -21,1 +21,16 @@ var test = require('tape'); | ||
}); | ||
test('boolean default to null', function (t) { | ||
var argv = parse([], { | ||
boolean: 'maybe', | ||
default: { maybe: null } | ||
}); | ||
t.equal(argv.maybe, null); | ||
var argv = parse(['--maybe'], { | ||
boolean: 'maybe', | ||
default: { maybe: null } | ||
}); | ||
t.equal(argv.maybe, true); | ||
t.end(); | ||
}) |
@@ -8,3 +8,3 @@ var parse = require('../'); | ||
var argv = parse([ '-b', '123' ], { boolean: 'b' }); | ||
t.deepEqual(argv, { b: true, _: ['123'] }); | ||
t.deepEqual(argv, { b: true, _: [123] }); | ||
}); |
28364
816