UNPKG

rxjs

Version:

Reactive Extensions for modern JavaScript

35 lines (31 loc) 1.88 kB
import { combineLatestInit } from '../observable/combineLatest'; import { ObservableInput, ObservableInputTuple, OperatorFunction } from '../types'; import { operate } from '../util/lift'; import { argsOrArgArray } from '../util/argsOrArgArray'; import { mapOneOrManyArgs } from '../util/mapOneOrManyArgs'; import { pipe } from '../util/pipe'; import { popResultSelector } from '../util/args'; /** @deprecated Replaced with {@link combineLatestWith}. Will be removed in v8. */ export function combineLatest<T, A extends readonly unknown[], R>( sources: [...ObservableInputTuple<A>], project: (...values: [T, ...A]) => R ): OperatorFunction<T, R>; /** @deprecated Replaced with {@link combineLatestWith}. Will be removed in v8. */ export function combineLatest<T, A extends readonly unknown[], R>(sources: [...ObservableInputTuple<A>]): OperatorFunction<T, [T, ...A]>; /** @deprecated Replaced with {@link combineLatestWith}. Will be removed in v8. */ export function combineLatest<T, A extends readonly unknown[], R>( ...sourcesAndProject: [...ObservableInputTuple<A>, (...values: [T, ...A]) => R] ): OperatorFunction<T, R>; /** @deprecated Replaced with {@link combineLatestWith}. Will be removed in v8. */ export function combineLatest<T, A extends readonly unknown[], R>(...sources: [...ObservableInputTuple<A>]): OperatorFunction<T, [T, ...A]>; /** * @deprecated Replaced with {@link combineLatestWith}. Will be removed in v8. */ export function combineLatest<T, R>(...args: (ObservableInput<any> | ((...values: any[]) => R))[]): OperatorFunction<T, unknown> { const resultSelector = popResultSelector(args); return resultSelector ? pipe(combineLatest(...(args as Array<ObservableInput<any>>)), mapOneOrManyArgs(resultSelector)) : operate((source, subscriber) => { combineLatestInit([source, ...argsOrArgArray(args)])(subscriber); }); }