| 32 | type Store = <T>(callback: (store: IDBObjectStore) => T | PromiseLike<T>) => Promise<T>; |
| 33 | |
| 34 | function promisifyRequest<T = undefined>(request: IDBRequest<T> | IDBTransaction): Promise<T> { |
| 35 | return new Promise<T>((resolve, reject) => { |
| 36 | // @ts-expect-error - file size hacks |
| 37 | request.oncomplete = request.onsuccess = () => resolve(request.result); |
| 38 | // @ts-expect-error - file size hacks |
| 39 | request.onabort = request.onerror = () => reject(request.error); |
| 40 | }); |
| 41 | } |
| 42 | |
| 43 | /** Create or open an IndexedDb store */ |
| 44 | export function createStore(dbName: string, storeName: string): Store { |