export async function promisify(request: IDBTransaction): Promise export async function promisify(request: IDBRequest): Promise export async function promisify(request: IDBRequest | IDBTransaction) { if ('oncomplete' in request) { // this is a transaction return new Promise((resolve, reject) => { request.oncomplete = () => resolve() request.onerror = err => reject(err) }) } // this is an IDBRequest return new Promise((resolve, reject) => { request.onsuccess = () => resolve(request.result) request.onerror = err => reject(err) }) }