diff --git a/packages/web/src/idb/repository/ref-messages.ts b/packages/web/src/idb/repository/ref-messages.ts index 8de88620..6bb039c9 100644 --- a/packages/web/src/idb/repository/ref-messages.ts +++ b/packages/web/src/idb/repository/ref-messages.ts @@ -1,7 +1,7 @@ import { IReferenceMessagesRepository } from '@mtcute/core' import { IdbStorageDriver } from '../driver.js' -import { cursorToIterator, reqToPromise, txToPromise } from '../utils.js' +import { reqToPromise, txToPromise } from '../utils.js' const TABLE = 'messageRefs' @@ -62,8 +62,14 @@ export class IdbRefMsgRepository implements IReferenceMessagesRepository { const os = tx.objectStore(TABLE) const index = os.index('by_peer') - for await (const cursor of cursorToIterator(index.openCursor(peerId))) { + const req = index.openCursor(peerId) + + let cursor = await reqToPromise(req) + + while (cursor) { cursor.delete() + cursor.continue() + cursor = await reqToPromise(req) } return txToPromise(tx) diff --git a/packages/web/src/idb/utils.ts b/packages/web/src/idb/utils.ts index e30b866f..72d35c7c 100644 --- a/packages/web/src/idb/utils.ts +++ b/packages/web/src/idb/utils.ts @@ -11,15 +11,3 @@ export function reqToPromise(req: IDBRequest): Promise { req.onerror = () => reject(req.error) }) } - -export async function* cursorToIterator( - req: IDBRequest, -): AsyncIterableIterator { - let cursor = await reqToPromise(req) - - while (cursor) { - yield cursor - cursor.continue() - cursor = await reqToPromise(req) - } -}