Index

References

Classes

Variables

Functions

References

default

Renames and exports state

Variables

Const defaults

defaults: {} = Object.freeze(new State())

Type declaration

Const logger

logger: Logger = new Logger("state")

Const overlay

overlay: State = {} as State

Const state

state: State = (new Proxy(overlay, {/** Give defaults if overlay doesn't have the key */get(target, property) {if (notBackground()) throw "State object must be accessed with getAsync in content"if (property in target) {return target[property]} else {return defaults[property]}},/** Persist sets to storage "immediately" */set(target, property, value) {logger.debug("State changed!", property, value)target[property] = valueif (notBackground()) {browser.runtime.sendMessage({type: "state", command: "stateUpdate", args: [{state: target}]})} else {// Do we need a global storage lock?browser.storage.local.set({ state: target } as any)}return true},}))

Functions

getAsync

  • getAsync(property: any): Promise<any>