From e4fa1e69e7ebfb627c7198fd1a9881e9327ec4d4 Mon Sep 17 00:00:00 2001 From: Pinapelz Date: Sat, 28 Jun 2025 17:26:46 -0700 Subject: initial commit: scaffolding --- .../rxjs/src/internal/operators/raceWith.ts | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 node_modules/rxjs/src/internal/operators/raceWith.ts (limited to 'node_modules/rxjs/src/internal/operators/raceWith.ts') diff --git a/node_modules/rxjs/src/internal/operators/raceWith.ts b/node_modules/rxjs/src/internal/operators/raceWith.ts new file mode 100644 index 0000000..6e72929 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/raceWith.ts @@ -0,0 +1,40 @@ +import { OperatorFunction, ObservableInputTuple } from '../types'; +import { raceInit } from '../observable/race'; +import { operate } from '../util/lift'; +import { identity } from '../util/identity'; + +/** + * Creates an Observable that mirrors the first source Observable to emit a next, + * error or complete notification from the combination of the Observable to which + * the operator is applied and supplied Observables. + * + * ## Example + * + * ```ts + * import { interval, map, raceWith } from 'rxjs'; + * + * const obs1 = interval(7000).pipe(map(() => 'slow one')); + * const obs2 = interval(3000).pipe(map(() => 'fast one')); + * const obs3 = interval(5000).pipe(map(() => 'medium one')); + * + * obs1 + * .pipe(raceWith(obs2, obs3)) + * .subscribe(winner => console.log(winner)); + * + * // Outputs + * // a series of 'fast one' + * ``` + * + * @param otherSources Sources used to race for which Observable emits first. + * @return A function that returns an Observable that mirrors the output of the + * first Observable to emit an item. + */ +export function raceWith( + ...otherSources: [...ObservableInputTuple] +): OperatorFunction { + return !otherSources.length + ? identity + : operate((source, subscriber) => { + raceInit([source, ...otherSources])(subscriber); + }); +} -- cgit v1.2.3