From eabcdded2d50744826fd954cd02d62d948261cd0 Mon Sep 17 00:00:00 2001 From: Igor Zviagintsev Date: Tue, 2 Apr 2024 14:50:31 +0400 Subject: [PATCH] 3850 - first implementation of new Set methods --- packages/mobx/src/types/observableset.ts | 38 ++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/packages/mobx/src/types/observableset.ts b/packages/mobx/src/types/observableset.ts index bce670ba3..495e98a43 100644 --- a/packages/mobx/src/types/observableset.ts +++ b/packages/mobx/src/types/observableset.ts @@ -243,6 +243,44 @@ export class ObservableSet implements Set, IInterceptable): IterableIterator { + this.atom_.reportObserved() + const self = this + let nextIndex = 0 + const observableValues = Array.from(this.data_.intersection(otherSet)) + return makeIterable({ + next() { + return nextIndex < observableValues.length + ? { value: self.dehanceValue_(observableValues[nextIndex++]), done: false } + : { done: true } + } + } as any) + } + + union(): IterableIterator { + // TODO: implement + } + + difference(): IterableIterator { + // TODO: implement + } + + symmetricDifference(): IterableIterator { + // TODO: implement + } + + isSubsetOf(): IterableIterator { + // TODO: implement + } + + isSupersetOf(): IterableIterator { + // TODO: implement + } + + isDisjointFrom(): IterableIterator { + // TODO: implement + } + replace(other: ObservableSet | IObservableSetInitialValues): ObservableSet { if (isObservableSet(other)) { other = new Set(other)