Commit 5e0a4af4 authored by Masayuki Tanaka's avatar Masayuki Tanaka

Fix config logic

parent 6f306700
...@@ -78,12 +78,17 @@ ...@@ -78,12 +78,17 @@
} }
function getConfig(keys, defaultValue) { function getConfig(keys, defaultValue) {
var i, target = config, isDefaultObject = typeof defaultValue === 'object'; var target = config, i, isLast, nextTarget;
for (i = 0; i < keys.length; i++) { for (i = 0; i < keys.length; i++) {
if (!(keys[i] in target) || (i === keys.length - 1 && !isDefaultObject && typeof target[keys[i]] === 'object')) { // return default if key not found
if (typeof target === 'object' && !(keys[i] in target)) { return defaultValue; }
// Check next key's value
isLast = (i === keys.length - 1);
nextTarget = target[keys[i]];
if ((!isLast && typeof nextTarget !== 'object') || (isLast && typeof defaultValue !== 'object' && typeof nextTarget === 'object')) {
return defaultValue; return defaultValue;
} }
target = target[keys[i]]; target = nextTarget;
} }
return target; return target;
} }
......
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment