Changeset View
Changeset View
Standalone View
Standalone View
extension/utils.js
| Show All 16 Lines | |||||
| 17 | 17 | | |||
| 18 | class SettingsUtils { | 18 | class SettingsUtils { | ||
| 19 | static storage() { | 19 | static storage() { | ||
| 20 | return (IS_FIREFOX ? chrome.storage.local : chrome.storage.sync); | 20 | return (IS_FIREFOX ? chrome.storage.local : chrome.storage.sync); | ||
| 21 | } | 21 | } | ||
| 22 | 22 | | |||
| 23 | static get() { | 23 | static get() { | ||
| 24 | return new Promise((resolve, reject) => { | 24 | return new Promise((resolve, reject) => { | ||
| 25 | SettingsUtils.storage().get(DEFAULT_EXTENSION_SETTINGS, (items) => { | 25 | SettingsUtils.storage().get(null /* get all */, (items) => { | ||
| 26 | const error = chrome.runtime.lastError; | 26 | const error = chrome.runtime.lastError; | ||
| 27 | if (error) { | 27 | if (error) { | ||
| 28 | return reject(error); | 28 | return reject(error); | ||
| 29 | } | 29 | } | ||
| 30 | 30 | | |||
| 31 | // Passing a default Object get() only returns defaults for the top level of the object, | ||||
| 32 | // so we need to merge the level underneath manually. | ||||
| 33 | const addObjectInto = (obj, add) => { | ||||
| 34 | if (typeof add !== "object" || Array.isArray(add)) { | ||||
| 35 | return; | ||||
| 36 | } | ||||
| 37 | | ||||
| 38 | Object.keys(add).forEach((key) => { | ||||
| 39 | if (obj.hasOwnProperty(key)) { | ||||
fvogt: Why not if/else? | |||||
fvogt: I'd invert the condition | |||||
| 40 | addObjectInto(obj[key], add[key]); | ||||
| 41 | } else { | ||||
| 42 | obj[key] = add[key]; | ||||
| 43 | } | ||||
| 44 | }); | ||||
| 45 | }; | ||||
| 46 | | ||||
| 47 | addObjectInto(items, DEFAULT_EXTENSION_SETTINGS); | ||||
| 31 | resolve(items); | 48 | resolve(items); | ||
| 32 | }); | 49 | }); | ||
| 33 | }); | 50 | }); | ||
| 34 | } | 51 | } | ||
| 35 | 52 | | |||
| 36 | static set(settings) { | 53 | static set(settings) { | ||
| 37 | return new Promise((resolve, reject) => { | 54 | return new Promise((resolve, reject) => { | ||
| 38 | try { | 55 | try { | ||
| Show All 18 Lines | |||||
Why not if/else?