From 4740f362521b17286b6092d1a7b05696c67c8213 Mon Sep 17 00:00:00 2001 From: george Date: Sun, 13 Feb 2022 00:18:09 +0000 Subject: [PATCH 1/3] Store API data in local storage instead of sync storage. --- src/background/index.js | 2 ++ src/popup/SLStorage.js | 27 +++++++++++++++++++++++---- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/background/index.js b/src/background/index.js index 821efff..ed34092 100644 --- a/src/background/index.js +++ b/src/background/index.js @@ -62,5 +62,7 @@ browser.commands.onCommand.addListener(async (command) => { } }); +SLStorage.convertFromSyncToLocal(SLStorage.SETTINGS.API_URL); +SLStorage.convertFromSyncToLocal(SLStorage.SETTINGS.API_KEY); APIService.initService(); Onboarding.initService(); diff --git a/src/popup/SLStorage.js b/src/popup/SLStorage.js index 4983897..9c5df8f 100644 --- a/src/popup/SLStorage.js +++ b/src/popup/SLStorage.js @@ -12,6 +12,14 @@ class SLStorage { SL_BUTTON_POSITION: "SLButtonPosition", }; + static TYPES = { + apiUrl: "local", + apiKey: "local", + notAskingRate: "sync", + showSLButton: "sync", + SLButtonPosition: "sync" + } + static DEFAULT_SETTINGS = { [SLStorage.SETTINGS.API_URL]: devConfig ? devConfig.DEFAULT_API_URL @@ -23,11 +31,13 @@ class SLStorage { }; static set(key, value) { - return browser.storage.sync.set({ [key]: value }); + const type = this.TYPES[key]; + return browser.storage[type].set({ [key]: value }); } static async get(key) { - const data = await browser.storage.sync.get(key); + const type = this.TYPES[key]; + const data = await browser.storage[type].get(key); if (data[key] === undefined || data[key] === null) { return SLStorage.DEFAULT_SETTINGS[key] || ""; @@ -37,10 +47,12 @@ class SLStorage { } static remove(key) { - return browser.storage.sync.remove(key); + const type = this.TYPES[key]; + return browser.storage[type].remove(key); } - static clear() { + static async clear() { + await browser.storage.local.clear(); return browser.storage.sync.clear(); } @@ -51,6 +63,13 @@ class SLStorage { static getTemporary(key) { return TEMP[key]; } + + static async convertFromSyncToLocal(key) { + const data = await browser.storage.sync.get(key); + if (data[key]) { + await browser.storage.local.set({ [key]: data[key] }).then(_ => browser.storage.sync.remove(key)); + } + } } export default SLStorage; From b1a7a533eeb837636d460ca8ef60876028bd7474 Mon Sep 17 00:00:00 2001 From: george Date: Sun, 13 Feb 2022 00:53:25 +0000 Subject: [PATCH 2/3] Formatting. --- src/popup/SLStorage.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/popup/SLStorage.js b/src/popup/SLStorage.js index 9c5df8f..10dba7f 100644 --- a/src/popup/SLStorage.js +++ b/src/popup/SLStorage.js @@ -17,8 +17,8 @@ class SLStorage { apiKey: "local", notAskingRate: "sync", showSLButton: "sync", - SLButtonPosition: "sync" - } + SLButtonPosition: "sync", + }; static DEFAULT_SETTINGS = { [SLStorage.SETTINGS.API_URL]: devConfig @@ -67,7 +67,9 @@ class SLStorage { static async convertFromSyncToLocal(key) { const data = await browser.storage.sync.get(key); if (data[key]) { - await browser.storage.local.set({ [key]: data[key] }).then(_ => browser.storage.sync.remove(key)); + await browser.storage.local + .set({ [key]: data[key] }) + .then((_) => browser.storage.sync.remove(key)); } } } From a5bf20c737d0a717e43bb6a2ed58d38dafd09e21 Mon Sep 17 00:00:00 2001 From: george Date: Sun, 13 Feb 2022 10:58:18 +0000 Subject: [PATCH 3/3] Set default type to local. --- src/popup/SLStorage.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/popup/SLStorage.js b/src/popup/SLStorage.js index 10dba7f..bcd15df 100644 --- a/src/popup/SLStorage.js +++ b/src/popup/SLStorage.js @@ -30,13 +30,17 @@ class SLStorage { [SLStorage.SETTINGS.SL_BUTTON_POSITION]: "right-inside", }; + static getType(key) { + return this.TYPES[key] || "local"; + } + static set(key, value) { - const type = this.TYPES[key]; + const type = this.getType(key); return browser.storage[type].set({ [key]: value }); } static async get(key) { - const type = this.TYPES[key]; + const type = this.getType(key); const data = await browser.storage[type].get(key); if (data[key] === undefined || data[key] === null) { @@ -47,7 +51,7 @@ class SLStorage { } static remove(key) { - const type = this.TYPES[key]; + const type = this.getType(key); return browser.storage[type].remove(key); }