f2ecb92e572787d8ba41c4ec9041fa4097162de88e5387fe0219fba6aa8c30c75da86fe5906d3a87c22c24cc34525f8fb652475ce60142dc358bbb0e3c8cda 1.5 KB

1234567891011121314151617181920212223242526272829
  1. import { ObservableInput, ObservableInputTuple, OperatorFunction, SchedulerLike } from '../types';
  2. import { operate } from '../util/lift';
  3. import { mergeAll } from './mergeAll';
  4. import { popNumber, popScheduler } from '../util/args';
  5. import { from } from '../observable/from';
  6. /** @deprecated Replaced with {@link mergeWith}. Will be removed in v8. */
  7. export function merge<T, A extends readonly unknown[]>(...sources: [...ObservableInputTuple<A>]): OperatorFunction<T, T | A[number]>;
  8. /** @deprecated Replaced with {@link mergeWith}. Will be removed in v8. */
  9. export function merge<T, A extends readonly unknown[]>(
  10. ...sourcesAndConcurrency: [...ObservableInputTuple<A>, number]
  11. ): OperatorFunction<T, T | A[number]>;
  12. /** @deprecated Replaced with {@link mergeWith}. Will be removed in v8. */
  13. export function merge<T, A extends readonly unknown[]>(
  14. ...sourcesAndScheduler: [...ObservableInputTuple<A>, SchedulerLike]
  15. ): OperatorFunction<T, T | A[number]>;
  16. /** @deprecated Replaced with {@link mergeWith}. Will be removed in v8. */
  17. export function merge<T, A extends readonly unknown[]>(
  18. ...sourcesAndConcurrencyAndScheduler: [...ObservableInputTuple<A>, number, SchedulerLike]
  19. ): OperatorFunction<T, T | A[number]>;
  20. export function merge<T>(...args: unknown[]): OperatorFunction<T, unknown> {
  21. const scheduler = popScheduler(args);
  22. const concurrent = popNumber(args, Infinity);
  23. return operate((source, subscriber) => {
  24. mergeAll(concurrent)(from([source, ...(args as ObservableInput<T>[])], scheduler)).subscribe(subscriber);
  25. });
  26. }