From 35678220361176d8395bf7174ce9711f041e441b Mon Sep 17 00:00:00 2001 From: Carson Farmer Date: Thu, 22 Oct 2020 17:11:49 -0700 Subject: [PATCH] fix: workaround for diff hub/remote behavior Signed-off-by: Carson Farmer --- src/remote/index.ts | 13 +++++++++++-- src/remote/remote.spec.ts | 2 +- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/remote/index.ts b/src/remote/index.ts index 80f72ac..439ec34 100644 --- a/src/remote/index.ts +++ b/src/remote/index.ts @@ -400,8 +400,17 @@ export class Remote { } } case "add": { - await trans.create([obj.after]); - break; + try { + await trans.create([obj.after]); + break; + } catch (err) { + if (err.message.includes("already existent instance")) { + await trans.save([obj.after]); + break; + } else { + throw err; + } + } } case "delete": { try { diff --git a/src/remote/remote.spec.ts b/src/remote/remote.spec.ts index 9178abd..4579773 100644 --- a/src/remote/remote.spec.ts +++ b/src/remote/remote.spec.ts @@ -267,7 +267,7 @@ describe("remote", function () { await remote.push("dogs"); expect(await changes.count()).to.equal(0); // Trying again should not lead to any issues - await remote.push(); // Push everything this time... except we have none! + await remote.push("dogs"); // Push everything this time... except we have none! // Low level checks const client = createDbClient(remote.config); const dogs = dexie.table("dogs");