import * as plugins from './webstore.plugins'; export interface IWebStoreOptions { storeName: string; } export class WebStore { public db: plugins.idb.IDBPDatabase; public objectStore: plugins.idb.IDBPObjectStore; public options: IWebStoreOptions; constructor(optionsArg: IWebStoreOptions) { this.options = optionsArg; } public async init () { this.db = await plugins.idb.openDB(this.options.storeName, 1, { upgrade(db) { db.createObjectStore('keyval'); }, }); } async get(key) { return this.db.get('keyval', key); } async set(key, val) { return this.db.put('keyval', val, key); } async delete(key) { return this.db.delete('keyval', key); } async clear() { return this.db.clear('keyval'); } async keys() { return this.db.getAllKeys('keyval'); } }