Skip to content

Commit

Permalink
fix applying coercion to dot options
Browse files Browse the repository at this point in the history
  • Loading branch information
maxrimue committed Aug 30, 2016
1 parent 33ec06e commit 732acd1
Showing 1 changed file with 15 additions and 6 deletions.
21 changes: 15 additions & 6 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -538,12 +538,21 @@ function parse (args, opts) {
})

var key = keys[keys.length - 1]
var coerce = !checkAllAliases(key, flags.arrays) && checkAllAliases(key, flags.coercions)
if (typeof coerce === 'function') {
try {
value = coerce(value)
} catch (err) {
error = err

var reversedKeys = keys
reversedKeys.reverse()

var coerce
// Check if option itself or option parent has a coerce function (eg foo.bar => bar?, foo?)
for (var i = 0; i <= reversedKeys.length; i++) {
coerce = !checkAllAliases(reversedKeys[i], flags.arrays) && checkAllAliases(reversedKeys[i], flags.coercions)

if (typeof coerce === 'function') {
try {
value = coerce(value)
} catch (err) {
error = err
}
}
}

Expand Down

0 comments on commit 732acd1

Please sign in to comment.