From 6a8c705b06700a05f50ed19a86ed5c4db4ec34c0 Mon Sep 17 00:00:00 2001 From: bytedream Date: Fri, 17 Nov 2023 16:25:40 +0100 Subject: [PATCH] Fix mv2 chrome namespace apis --- src/lib/settings.ts | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/lib/settings.ts b/src/lib/settings.ts index d05327d..d0c0e3a 100644 --- a/src/lib/settings.ts +++ b/src/lib/settings.ts @@ -55,18 +55,34 @@ export const Other = { }; export async function storageGet(key: string, defaultValue?: T): Promise { - const entry = await chrome.storage.local.get(key); - const value = entry[key]; - return value === undefined ? defaultValue : value; + let resolve: (value: T | undefined) => void; + const promise = new Promise((r) => (resolve = r)); + + chrome.storage.local.get(key, (entry) => { + const value = entry[key]; + resolve(value === undefined ? defaultValue : value); + }); + + return promise; } export async function storageSet(key: string, value: T) { + let resolve: () => void; + const promise = new Promise((r) => (resolve = r)); + const obj = { [key]: value }; - await chrome.storage.local.set(obj); + chrome.storage.local.set(obj, () => resolve()); + + return promise; } export async function storageDelete(key: string) { - await chrome.storage.local.remove(key); + let resolve: () => void; + const promise = new Promise((r) => (resolve = r)); + + chrome.storage.local.remove(key, () => resolve()); + + return promise; }