Add TypedStorageArea

This commit is contained in:
hensm
2019-09-30 10:40:53 +01:00
parent e1b15a12a2
commit d1dd2b188c
2 changed files with 87 additions and 4 deletions

View File

@@ -4,8 +4,13 @@ import defaultOptions from "../defaultOptions";
import { ReceiverSelectorType } from "../background/receiverSelector";
import { TypedEventTarget } from "./typedEvents";
import { TypedStorageArea } from "./typedStorage";
const storageArea = new TypedStorageArea<{
options: Options
}>(browser.storage.sync);
export interface Options {
bridgeApplicationName: string;
mediaEnabled: boolean;
@@ -89,9 +94,7 @@ export default new class extends TypedEventTarget<EventMap> {
* Options interface type.
*/
public async getAll (): Promise<Options> {
const { options } = await browser.storage.sync.get(
"options") as { options: Options };
const { options } = await storageArea.get("options");
return options;
}
@@ -100,7 +103,7 @@ export default new class extends TypedEventTarget<EventMap> {
* Returns storage promise.
*/
public async setAll (options: Options): Promise<void> {
return browser.storage.sync.set({ options });
return storageArea.set({ options })
}
/**