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/isEmpty.ts | 82 ++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 node_modules/rxjs/src/internal/operators/isEmpty.ts (limited to 'node_modules/rxjs/src/internal/operators/isEmpty.ts') diff --git a/node_modules/rxjs/src/internal/operators/isEmpty.ts b/node_modules/rxjs/src/internal/operators/isEmpty.ts new file mode 100644 index 0000000..5de8deb --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/isEmpty.ts @@ -0,0 +1,82 @@ +import { OperatorFunction } from '../types'; +import { operate } from '../util/lift'; +import { createOperatorSubscriber } from './OperatorSubscriber'; + +/** + * Emits `false` if the input Observable emits any values, or emits `true` if the + * input Observable completes without emitting any values. + * + * Tells whether any values are emitted by an Observable. + * + * ![](isEmpty.png) + * + * `isEmpty` transforms an Observable that emits values into an Observable that + * emits a single boolean value representing whether or not any values were + * emitted by the source Observable. As soon as the source Observable emits a + * value, `isEmpty` will emit a `false` and complete. If the source Observable + * completes having not emitted anything, `isEmpty` will emit a `true` and + * complete. + * + * A similar effect could be achieved with {@link count}, but `isEmpty` can emit + * a `false` value sooner. + * + * ## Examples + * + * Emit `false` for a non-empty Observable + * + * ```ts + * import { Subject, isEmpty } from 'rxjs'; + * + * const source = new Subject(); + * const result = source.pipe(isEmpty()); + * + * source.subscribe(x => console.log(x)); + * result.subscribe(x => console.log(x)); + * + * source.next('a'); + * source.next('b'); + * source.next('c'); + * source.complete(); + * + * // Outputs + * // 'a' + * // false + * // 'b' + * // 'c' + * ``` + * + * Emit `true` for an empty Observable + * + * ```ts + * import { EMPTY, isEmpty } from 'rxjs'; + * + * const result = EMPTY.pipe(isEmpty()); + * result.subscribe(x => console.log(x)); + * + * // Outputs + * // true + * ``` + * + * @see {@link count} + * @see {@link EMPTY} + * + * @return A function that returns an Observable that emits boolean value + * indicating whether the source Observable was empty or not. + */ +export function isEmpty(): OperatorFunction { + return operate((source, subscriber) => { + source.subscribe( + createOperatorSubscriber( + subscriber, + () => { + subscriber.next(false); + subscriber.complete(); + }, + () => { + subscriber.next(true); + subscriber.complete(); + } + ) + ); + }); +} -- cgit v1.2.3