mirror of
https://github.com/farcasterxyz/hub-monorepo.git
synced 2026-04-18 03:00:22 -04:00
fix: End iterator if returning early from forEachMessage (#800)
This commit is contained in:
5
.changeset/little-bats-lick.md
Normal file
5
.changeset/little-bats-lick.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@farcaster/hubble': patch
|
||||
---
|
||||
|
||||
End iterator in while rebulding trie
|
||||
@@ -342,9 +342,11 @@ class Engine {
|
||||
|
||||
async forEachMessage(callback: (message: protobufs.Message, key: Buffer) => Promise<boolean | void>): Promise<void> {
|
||||
const allUserPrefix = Buffer.from([RootPrefix.User]);
|
||||
const iterator = this._db.iteratorByPrefix(allUserPrefix, { keys: true });
|
||||
|
||||
for await (const [key, value] of this._db.iteratorByPrefix(allUserPrefix, { keys: true })) {
|
||||
for await (const [key, value] of iterator) {
|
||||
if (!key || !value) {
|
||||
await iterator.end();
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -375,6 +377,7 @@ class Engine {
|
||||
if (message.isOk()) {
|
||||
const done = await callback(message.value, key);
|
||||
if (done) {
|
||||
await iterator.end();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user