aboutsummaryrefslogtreecommitdiff
path: root/src/shared
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/Settings.ts28
1 files changed, 17 insertions, 11 deletions
diff --git a/src/shared/Settings.ts b/src/shared/Settings.ts
index e1e2046..0bef342 100644
--- a/src/shared/Settings.ts
+++ b/src/shared/Settings.ts
@@ -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;
};