Fix mv2 chrome namespace apis

This commit is contained in:
bytedream 2023-11-17 16:25:40 +01:00
parent 76a5bac7fd
commit 6a8c705b06

View File

@ -55,18 +55,34 @@ export const Other = {
}; };
export async function storageGet<T>(key: string, defaultValue?: T): Promise<T | undefined> { export async function storageGet<T>(key: string, defaultValue?: T): Promise<T | undefined> {
const entry = await chrome.storage.local.get(key); let resolve: (value: T | undefined) => void;
const value = entry[key]; const promise = new Promise<T | undefined>((r) => (resolve = r));
return value === undefined ? defaultValue : value;
chrome.storage.local.get(key, (entry) => {
const value = entry[key];
resolve(value === undefined ? defaultValue : value);
});
return promise;
} }
export async function storageSet<T>(key: string, value: T) { export async function storageSet<T>(key: string, value: T) {
let resolve: () => void;
const promise = new Promise<void>((r) => (resolve = r));
const obj = { const obj = {
[key]: value [key]: value
}; };
await chrome.storage.local.set(obj); chrome.storage.local.set(obj, () => resolve());
return promise;
} }
export async function storageDelete(key: string) { export async function storageDelete(key: string) {
await chrome.storage.local.remove(key); let resolve: () => void;
const promise = new Promise<void>((r) => (resolve = r));
chrome.storage.local.remove(key, () => resolve());
return promise;
} }