yargs-parser
Advanced tools
Comparing version 4.2.0 to 4.2.1-candidate.0
@@ -5,2 +5,12 @@ # Change Log | ||
<a name="4.2.1"></a> | ||
## [4.2.1](https://github.com/yargs/yargs-parser/compare/v4.2.0...v4.2.1) (2017-01-02) | ||
### Bug Fixes | ||
* flatten/duplicate regression ([#75](https://github.com/yargs/yargs-parser/issues/75)) ([68d68a0](https://github.com/yargs/yargs-parser/commit/68d68a0)) | ||
<a name="4.2.0"></a> | ||
@@ -7,0 +17,0 @@ # [4.2.0](https://github.com/yargs/yargs-parser/compare/v4.1.0...v4.2.0) (2016-12-01) |
73
index.js
@@ -328,4 +328,6 @@ var camelCase = require('camelcase') | ||
} | ||
if (multipleArrayFlag && !configuration['flatten-duplicate-arrays']) { | ||
setArg(key, argsToSet) | ||
if (multipleArrayFlag) { | ||
setArg(key, argsToSet.map(function (arg) { | ||
return processValue(key, arg) | ||
})) | ||
} else { | ||
@@ -343,7 +345,2 @@ argsToSet.forEach(function (arg) { | ||
// handle parsing boolean arguments --foo=true --bar false. | ||
if (checkAllAliases(key, flags.bools) || checkAllAliases(key, flags.counts)) { | ||
if (typeof val === 'string') val = val === 'true' | ||
} | ||
if (/-/.test(key) && !(flags.aliases[key] && flags.aliases[key].length) && configuration['camel-case-expansion']) { | ||
@@ -355,19 +352,4 @@ var c = camelCase(key) | ||
var value = val | ||
if (!checkAllAliases(key, flags.strings) && !checkAllAliases(key, flags.coercions)) { | ||
if (isNumber(val)) value = Number(val) | ||
if (!isUndefined(val) && !isNumber(val) && checkAllAliases(key, flags.numbers)) value = NaN | ||
} | ||
var value = processValue(key, val) | ||
// increment a count given as arg (either no value or value parsed as boolean) | ||
if (checkAllAliases(key, flags.counts) && (isUndefined(value) || typeof value === 'boolean')) { | ||
value = increment | ||
} | ||
// Set normalized value when key is in 'normalize' and in 'arrays' | ||
if (checkAllAliases(key, flags.normalize) && checkAllAliases(key, flags.arrays)) { | ||
if (Array.isArray(val)) value = val.map(path.normalize) | ||
else value = path.normalize(val) | ||
} | ||
var splitKey = key.split('.') | ||
@@ -413,2 +395,27 @@ setKey(argv, splitKey, value) | ||
function processValue (key, val) { | ||
// handle parsing boolean arguments --foo=true --bar false. | ||
if (checkAllAliases(key, flags.bools) || checkAllAliases(key, flags.counts)) { | ||
if (typeof val === 'string') val = val === 'true' | ||
} | ||
var value = val | ||
if (!checkAllAliases(key, flags.strings) && !checkAllAliases(key, flags.coercions)) { | ||
if (isNumber(val)) value = Number(val) | ||
if (!isUndefined(val) && !isNumber(val) && checkAllAliases(key, flags.numbers)) value = NaN | ||
} | ||
// increment a count given as arg (either no value or value parsed as boolean) | ||
if (checkAllAliases(key, flags.counts) && (isUndefined(value) || typeof value === 'boolean')) { | ||
value = increment | ||
} | ||
// Set normalized value when key is in 'normalize' and in 'arrays' | ||
if (checkAllAliases(key, flags.normalize) && checkAllAliases(key, flags.arrays)) { | ||
if (Array.isArray(val)) value = val.map(path.normalize) | ||
else value = path.normalize(val) | ||
} | ||
return value | ||
} | ||
// set args from config.json file, this should be | ||
@@ -558,11 +565,19 @@ // applied last so that defaults can be applied. | ||
var isTypeArray = checkAllAliases(key, flags.arrays) | ||
var isValueArray = Array.isArray(value) | ||
var duplicate = configuration['duplicate-arguments-array'] | ||
if (value === increment) { | ||
o[key] = increment(o[key]) | ||
} else if (o[key] === undefined && checkAllAliases(key, flags.arrays)) { | ||
o[key] = Array.isArray(value) && configuration['flatten-duplicate-arrays'] ? value : [value] | ||
} else if (o[key] === undefined || checkAllAliases(key, flags.bools) || checkAllAliases(keys.join('.'), flags.bools) || checkAllAliases(key, flags.counts)) { | ||
o[key] = value | ||
} else if (Array.isArray(o[key])) { | ||
o[key].push(value) | ||
} else if (configuration['duplicate-arguments-array']) { | ||
if (duplicate && isTypeArray && isValueArray) { | ||
o[key] = configuration['flatten-duplicate-arrays'] ? o[key].concat(value) : [o[key]].concat([value]) | ||
} else if (!duplicate && Boolean(isTypeArray) === Boolean(isValueArray)) { | ||
o[key] = value | ||
} else { | ||
o[key] = o[key].concat([value]) | ||
} | ||
} else if (o[key] === undefined && isTypeArray) { | ||
o[key] = isValueArray ? value : [value] | ||
} else if (duplicate && !(o[key] === undefined || checkAllAliases(key, flags.bools) || checkAllAliases(keys.join('.'), flags.bools) || checkAllAliases(key, flags.counts))) { | ||
o[key] = [ o[key], value ] | ||
@@ -569,0 +584,0 @@ } else { |
{ | ||
"name": "yargs-parser", | ||
"version": "4.2.0", | ||
"version": "4.2.1-candidate.0", | ||
"description": "the mighty option parser used by yargs", | ||
@@ -34,3 +34,3 @@ "main": "index.js", | ||
"standard": "^8.0.0", | ||
"standard-version": "^3.0.0" | ||
"standard-version": "^4.0.0" | ||
}, | ||
@@ -37,0 +37,0 @@ "dependencies": { |
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
37417
676
2