diff --git a/manifest.json b/manifest.json index b9dd393..0f6aaf4 100644 --- a/manifest.json +++ b/manifest.json @@ -28,6 +28,7 @@ "src/background/db/db-retention.js", "src/background/db/db-record-locks.js", "src/background/utils.js", + "src/core/settings-storage.js", "src/background/settings.js", "src/core/maintenance-guard.js", "src/background/consent-memory.js", diff --git a/src/background/settings.js b/src/background/settings.js index 6cdc850..86f6a67 100644 --- a/src/background/settings.js +++ b/src/background/settings.js @@ -6,25 +6,19 @@ const DEFAULT_VENDORGET_SETTINGS = { const VENDORGET_SETTINGS_STORAGE_KEY = "vendorgetSettings"; async function getVendorGetSettings() { - const storedSettings = await browser.storage.local.get( - VENDORGET_SETTINGS_STORAGE_KEY + return getSettingsFromStorage( + VENDORGET_SETTINGS_STORAGE_KEY, + DEFAULT_VENDORGET_SETTINGS ); - - return { - ...DEFAULT_VENDORGET_SETTINGS, - ...(storedSettings[VENDORGET_SETTINGS_STORAGE_KEY] ?? {}) - }; } async function setVendorGetSetting(key, value) { - const settings = await getVendorGetSettings(); - - await browser.storage.local.set({ - [VENDORGET_SETTINGS_STORAGE_KEY]: { - ...settings, - [key]: value - } - }); + return setSettingInStorage( + VENDORGET_SETTINGS_STORAGE_KEY, + DEFAULT_VENDORGET_SETTINGS, + key, + value + ); } async function isConsentCaptureEnabled() { diff --git a/src/core/settings-storage.js b/src/core/settings-storage.js new file mode 100644 index 0000000..7ae276f --- /dev/null +++ b/src/core/settings-storage.js @@ -0,0 +1,19 @@ +async function getSettingsFromStorage(storageKey, defaultSettings) { + const storedSettings = await browser.storage.local.get(storageKey); + + return { + ...defaultSettings, + ...(storedSettings[storageKey] ?? {}) + }; +} + +async function setSettingInStorage(storageKey, defaultSettings, key, value) { + const settings = await getSettingsFromStorage(storageKey, defaultSettings); + + await browser.storage.local.set({ + [storageKey]: { + ...settings, + [key]: value + } + }); +}