Fix settings parsing

This commit is contained in:
Shin'ya Ueoka 2019-05-26 21:39:38 +09:00
parent a603c72055
commit ff85797ffc
2 changed files with 21 additions and 11 deletions

View file

@ -101,17 +101,23 @@ export const blacklistValueOf = (o: any): string[] => {
export const valueOf = (o: any): Settings => {
let settings = { ...DefaultSetting };
if (Object.prototype.hasOwnProperty.call(o, 'keymaps')) {
settings.keymaps = keymapsValueOf(o.keymaps);
}
if (Object.prototype.hasOwnProperty.call(o, 'search')) {
settings.search = searchValueOf(o.search);
}
if (Object.prototype.hasOwnProperty.call(o, 'properties')) {
settings.properties = propertiesValueOf(o.properties);
}
if (Object.prototype.hasOwnProperty.call(o, 'blacklist')) {
settings.blacklist = blacklistValueOf(o.blacklist);
for (let key of Object.keys(o)) {
switch (key) {
case 'keymaps':
settings.keymaps = keymapsValueOf(o.keymaps);
break;
case 'search':
settings.search = searchValueOf(o.search);
break;
case 'properties':
settings.properties = propertiesValueOf(o.properties);
break;
case 'blacklist':
settings.blacklist = blacklistValueOf(o.blacklist);
break;
default:
throw new TypeError('unknown setting: ' + key);
}
}
return settings;
};