From cc10508743b5f78e14d66c6a2c7752048906b6c3 Mon Sep 17 00:00:00 2001 From: joao Date: Mon, 29 Jul 2024 11:43:28 +0100 Subject: [PATCH] fix: fixed compareSets fn --- packages/crdt/src/builtins/LWWElementSet/index.ts | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/packages/crdt/src/builtins/LWWElementSet/index.ts b/packages/crdt/src/builtins/LWWElementSet/index.ts index f048bf62..5b730683 100644 --- a/packages/crdt/src/builtins/LWWElementSet/index.ts +++ b/packages/crdt/src/builtins/LWWElementSet/index.ts @@ -43,12 +43,7 @@ export class LWWElementSet { } compare(peerSet: LWWElementSet): boolean { - const adds = new Set(this._adds.keys()); - const rems = new Set(this._removes.keys()); - const otherAdds = new Set(peerSet._adds.keys()); - const otherRems = new Set(peerSet._removes.keys()); - - return (compareSets(adds, otherAdds) && compareSets(rems, otherRems)); + return (compareSets(this._adds.keys(), peerSet._adds.keys()) && compareSets(this._removes.keys(), peerSet._removes.keys())); } merge(peerSet: LWWElementSet): void { @@ -68,6 +63,8 @@ export class LWWElementSet { } } -function compareSets(set1: Set, set2: Set): boolean { +function compareSets(keys1: IterableIterator, keys2: IterableIterator): boolean { + const set1 = new Set(keys1); + const set2 = new Set(keys2); return (set1.size == set2.size && [...set1].every(value => set2.has(value))); } \ No newline at end of file