199f555c0f6cab51ea686b12da8fc5f90ddd7b320e2d669c24fa17fe486d03140fc32d8d77759c7712de68d937bd0267b48987a23b83db5b7da2073fc33e4e 1.8 KB

12345678910111213141516171819202122232425262728293031323334
  1. import { combineLatestInit } from '../observable/combineLatest';
  2. import { ObservableInput, ObservableInputTuple, OperatorFunction } from '../types';
  3. import { operate } from '../util/lift';
  4. import { argsOrArgArray } from '../util/argsOrArgArray';
  5. import { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';
  6. import { pipe } from '../util/pipe';
  7. import { popResultSelector } from '../util/args';
  8. /** @deprecated Replaced with {@link combineLatestWith}. Will be removed in v8. */
  9. export function combineLatest<T, A extends readonly unknown[], R>(
  10. sources: [...ObservableInputTuple<A>],
  11. project: (...values: [T, ...A]) => R
  12. ): OperatorFunction<T, R>;
  13. /** @deprecated Replaced with {@link combineLatestWith}. Will be removed in v8. */
  14. export function combineLatest<T, A extends readonly unknown[], R>(sources: [...ObservableInputTuple<A>]): OperatorFunction<T, [T, ...A]>;
  15. /** @deprecated Replaced with {@link combineLatestWith}. Will be removed in v8. */
  16. export function combineLatest<T, A extends readonly unknown[], R>(
  17. ...sourcesAndProject: [...ObservableInputTuple<A>, (...values: [T, ...A]) => R]
  18. ): OperatorFunction<T, R>;
  19. /** @deprecated Replaced with {@link combineLatestWith}. Will be removed in v8. */
  20. export function combineLatest<T, A extends readonly unknown[], R>(...sources: [...ObservableInputTuple<A>]): OperatorFunction<T, [T, ...A]>;
  21. /**
  22. * @deprecated Replaced with {@link combineLatestWith}. Will be removed in v8.
  23. */
  24. export function combineLatest<T, R>(...args: (ObservableInput<any> | ((...values: any[]) => R))[]): OperatorFunction<T, unknown> {
  25. const resultSelector = popResultSelector(args);
  26. return resultSelector
  27. ? pipe(combineLatest(...(args as Array<ObservableInput<any>>)), mapOneOrManyArgs(resultSelector))
  28. : operate((source, subscriber) => {
  29. combineLatestInit([source, ...argsOrArgArray(args)])(subscriber);
  30. });
  31. }