From 28c09d53565734c91f707c7d9889a5b01af64da7 Mon Sep 17 00:00:00 2001 From: jensmohr Date: Tue, 26 May 2026 16:47:09 +0200 Subject: [PATCH] Extract neutral settings storage infrastructure into VG-Core --- manifest.json | 1 + src/background/settings.js | 24 +++++++++--------------- src/core/settings-storage.js | 19 +++++++++++++++++++ 3 files changed, 29 insertions(+), 15 deletions(-) create mode 100644 src/core/settings-storage.js 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 + } + }); +}