import { MonoTypeOperatorFunction } from '../../interfaces'; import { IterableX } from '../../iterable/iterablex'; import { DistinctUntilChangedIterable } from '../distinctuntilchanged'; import { identity } from '../../internal/identity'; import { comparer as defaultComparer } from '../../internal/comparer'; export function distinctUntilChanged( keySelector: (value: TSource) => TKey = identity, comparer: (first: TKey, second: TKey) => boolean = defaultComparer ): MonoTypeOperatorFunction { return function distinctUntilChangedOperatorFunction( source: Iterable ): IterableX { return new DistinctUntilChangedIterable(source, keySelector, comparer); }; }