| author | Stephen Paul Weber
<singpolyma@singpolyma.net> 2025-10-17 19:27:59 UTC |
| committer | Stephen Paul Weber
<singpolyma@singpolyma.net> 2025-10-17 19:27:59 UTC |
| parent | 8a27883558f8df1d229d744af79ca2a08471c938 |
| borogove/persistence/IDB.js | +9 | -11 |
diff --git a/borogove/persistence/IDB.js b/borogove/persistence/IDB.js index 014c600..f6da818 100644 --- a/borogove/persistence/IDB.js +++ b/borogove/persistence/IDB.js @@ -491,19 +491,17 @@ export default async (dbname, media, tokenize, stemmer) => { "prev" ); let count = 0; - while (true) { + for (let count = 0; count < 1000; count++) { const cresult = await promisifyRequest(cursor); - if (cresult && count < 1000) { - const value = cresult.value; - if (value?.versions?.[0]?.localId === localId && value?.direction === enums.MessageDirection.MessageSent && value?.status !== enums.MessageStatus.MessageDeliveredToDevice) { - const newStatus = { ...value, versions: [{ ...value.versions[0], status: status }, ...value.versions.slice(1)], status: status }; - cresult.update(newStatus); - return await hydrateMessage(newStatus); - } - cresult.continue(); - } else { - break; + if (!cresult) break; + + const value = cresult.value; + if (value?.versions?.[0]?.localId === localId && value?.direction === enums.MessageDirection.MessageSent && value?.status !== enums.MessageStatus.MessageDeliveredToDevice) { + const newStatus = { ...value, versions: [{ ...value.versions[0], status: status }, ...value.versions.slice(1)], status: status }; + cresult.update(newStatus); + return await hydrateMessage(newStatus); } + cresult.continue(); } throw "Message not found: " + localId;