From 5612820aac0030e5e99a9b2d4802abc7e9582826 Mon Sep 17 00:00:00 2001 From: Abdullah Atta Date: Mon, 11 Dec 2023 15:16:56 +0500 Subject: [PATCH] core: migrate items sequentially during sync --- packages/core/src/api/sync/index.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/core/src/api/sync/index.ts b/packages/core/src/api/sync/index.ts index d099eaa1c..1ca071be8 100644 --- a/packages/core/src/api/sync/index.ts +++ b/packages/core/src/api/sync/index.ts @@ -312,13 +312,13 @@ class Sync { const decrypted = await this.db.storage().decryptMulti(key, chunk.items); - const deserialized = ( - await Promise.all( - decrypted.map((item, index) => - deserializeItem(item, chunk.items[index].v, this.db) - ) - ) - ).filter(Boolean); + const deserialized: MaybeDeletedItem[] = []; + for (let i = 0; i < decrypted.length; ++i) { + const decryptedItem = decrypted[i]; + const version = chunk.items[i].v; + const item = await deserializeItem(decryptedItem, version, this.db); + if (item) deserialized.push(item); + } const collectionType = SYNC_COLLECTIONS_MAP[itemType]; const collection = this.db[collectionType].collection; @@ -398,7 +398,7 @@ async function deserializeItem( decryptedItem: string, version: number, database: Database -) { +): Promise | undefined> { const item = JSON.parse(decryptedItem); item.remote = true; item.synced = true;