import {UIEventSource} from "../UIEventSource"; import * as idb from "idb-keyval" import {Utils} from "../../Utils"; /** * UIEventsource-wrapper around indexedDB key-value */ export class IdbLocalStorage { public static Get(key: string, options: { defaultValue?: T }): UIEventSource{ const src = new UIEventSource(options.defaultValue, "idb-local-storage:"+key) if(Utils.runningFromConsole){ return src; } idb.get(key).then(v => src.setData(v ?? options.defaultValue)) src.addCallback(v => idb.set(key, v)) return src; } public static SetDirectly(key: string, value){ idb.set(key, value) } static GetDirectly(key: string) { return idb.get(key) } }