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

Fix config logic

parent 6f306700
......@@ -78,12 +78,17 @@
}
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++) {
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;
}
target = target[keys[i]];
target = nextTarget;
}
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