From b03c0c9bc27a6601815d4df843b5fb3ceb8e1168 Mon Sep 17 00:00:00 2001 From: Evan Morikawa Date: Tue, 10 Jan 2017 10:21:14 -0800 Subject: [PATCH] [isomorphic-core] don't try and inflate delete deltas Summary: If we inflate delete deltas, the object we're trying to find won't exist anymore (we just deleted it!). This is likely causing the `While inflating ${sourceName} transactions, we couldn't find models for some ${modelName} IDs` error. Fixes T7436 Test Plan: manual Reviewers: spang, juan, halla Reviewed By: halla Maniphest Tasks: T7436 Differential Revision: https://phab.nylas.com/D3621 --- packages/isomorphic-core/src/delta-stream-builder.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/isomorphic-core/src/delta-stream-builder.js b/packages/isomorphic-core/src/delta-stream-builder.js index ba46bbbc7..1f32fe902 100644 --- a/packages/isomorphic-core/src/delta-stream-builder.js +++ b/packages/isomorphic-core/src/delta-stream-builder.js @@ -10,7 +10,10 @@ const stream = require('stream'); * the inflated model they reference. */ function inflateTransactions(db, accountId, transactions = [], sourceName) { - const transactionJSONs = transactions.map((t) => (t.toJSON ? t.toJSON() : t)) + const transactionJSONs = transactions + .filter((t) => t.event !== 'delete') + .map((t) => (t.toJSON ? t.toJSON() : t)) + transactionJSONs.forEach((t) => { t.cursor = t.id; t.accountId = accountId;