import { OperatorFunction } from '../../interfaces'; import { IterableX } from '../../iterable/iterablex'; import { GroupJoinIterable } from '../groupjoin'; export function groupJoin( inner: Iterable, outerSelector: (value: TOuter) => TKey, innerSelector: (value: TInner) => TKey, resultSelector: (outer: TOuter, inner: Iterable) => TResult ): OperatorFunction { return function groupJoinOperatorFunction(outer: Iterable): IterableX { return new GroupJoinIterable( outer, inner, outerSelector, innerSelector, resultSelector ); }; }