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/skipWhile.ts | 60 ++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 node_modules/rxjs/src/internal/operators/skipWhile.ts (limited to 'node_modules/rxjs/src/internal/operators/skipWhile.ts') diff --git a/node_modules/rxjs/src/internal/operators/skipWhile.ts b/node_modules/rxjs/src/internal/operators/skipWhile.ts new file mode 100644 index 0000000..84b7379 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/skipWhile.ts @@ -0,0 +1,60 @@ +import { Falsy, MonoTypeOperatorFunction, OperatorFunction } from '../types'; +import { operate } from '../util/lift'; +import { createOperatorSubscriber } from './OperatorSubscriber'; + +export function skipWhile(predicate: BooleanConstructor): OperatorFunction extends never ? never : T>; +export function skipWhile(predicate: (value: T, index: number) => true): OperatorFunction; +export function skipWhile(predicate: (value: T, index: number) => boolean): MonoTypeOperatorFunction; + +/** + * Returns an Observable that skips all items emitted by the source Observable as long as a specified condition holds + * true, but emits all further source items as soon as the condition becomes false. + * + * ![](skipWhile.png) + * + * Skips all the notifications with a truthy predicate. It will not skip the notifications when the predicate is falsy. + * It can also be skipped using index. Once the predicate is true, it will not be called again. + * + * ## Example + * + * Skip some super heroes + * + * ```ts + * import { from, skipWhile } from 'rxjs'; + * + * const source = from(['Green Arrow', 'SuperMan', 'Flash', 'SuperGirl', 'Black Canary']) + * // Skip the heroes until SuperGirl + * const example = source.pipe(skipWhile(hero => hero !== 'SuperGirl')); + * // output: SuperGirl, Black Canary + * example.subscribe(femaleHero => console.log(femaleHero)); + * ``` + * + * Skip values from the array until index 5 + * + * ```ts + * import { from, skipWhile } from 'rxjs'; + * + * const source = from([1, 2, 3, 4, 5, 6, 7, 9, 10]); + * const example = source.pipe(skipWhile((_, i) => i !== 5)); + * // output: 6, 7, 9, 10 + * example.subscribe(value => console.log(value)); + * ``` + * + * @see {@link last} + * @see {@link skip} + * @see {@link skipUntil} + * @see {@link skipLast} + * + * @param predicate A function to test each item emitted from the source Observable. + * @return A function that returns an Observable that begins emitting items + * emitted by the source Observable when the specified predicate becomes false. + */ +export function skipWhile(predicate: (value: T, index: number) => boolean): MonoTypeOperatorFunction { + return operate((source, subscriber) => { + let taking = false; + let index = 0; + source.subscribe( + createOperatorSubscriber(subscriber, (value) => (taking || (taking = !predicate(value, index++))) && subscriber.next(value)) + ); + }); +} -- cgit v1.2.3