Sha256: a09e888b36f114b0b60ef704b93b2b9ada6fc12e7fd23077a9440dff9a7933bf

Contents?: true

Size: 1016 Bytes

Versions: 49

Compression:

Stored size: 1016 Bytes

Contents

import { Operator } from '../Operator';
import { Subscriber } from '../Subscriber';
import { Observable } from '../Observable';
import { OperatorFunction } from '../interfaces';

export function isEmpty<T>(): OperatorFunction<T, boolean> {
  return (source: Observable<T>) => source.lift(new IsEmptyOperator());
}

class IsEmptyOperator implements Operator<any, boolean> {
  call (observer: Subscriber<boolean>, source: any): any {
    return source.subscribe(new IsEmptySubscriber(observer));
  }
}

/**
 * We need this JSDoc comment for affecting ESDoc.
 * @ignore
 * @extends {Ignored}
 */
class IsEmptySubscriber extends Subscriber<any> {
  constructor(destination: Subscriber<boolean>) {
    super(destination);
  }

  private notifyComplete(isEmpty: boolean): void {
    const destination = this.destination;

    destination.next(isEmpty);
    destination.complete();
  }

  protected _next(value: boolean) {
    this.notifyComplete(false);
  }

  protected _complete() {
    this.notifyComplete(true);
  }
}

Version data entries

49 entries across 49 versions & 4 rubygems

Version Path
ilog-0.4.1 node_modules/rxjs/src/operators/isEmpty.ts
ilog-0.4.0 node_modules/rxjs/src/operators/isEmpty.ts
ilog-0.3.3 node_modules/rxjs/src/operators/isEmpty.ts
govuk_publishing_components-18.0.0 node_modules/rxjs/src/operators/isEmpty.ts
govuk_publishing_components-17.21.0 node_modules/rxjs/src/operators/isEmpty.ts
govuk_publishing_components-17.20.0 node_modules/rxjs/src/operators/isEmpty.ts
govuk_publishing_components-17.19.1 node_modules/rxjs/src/operators/isEmpty.ts
govuk_publishing_components-17.19.0 node_modules/rxjs/src/operators/isEmpty.ts
govuk_publishing_components-17.18.0 node_modules/rxjs/src/operators/isEmpty.ts
govuk_publishing_components-17.17.0 node_modules/rxjs/src/operators/isEmpty.ts
govuk_publishing_components-17.16.0 node_modules/rxjs/src/operators/isEmpty.ts
govuk_publishing_components-17.15.0 node_modules/rxjs/src/operators/isEmpty.ts
govuk_publishing_components-17.14.0 node_modules/rxjs/src/operators/isEmpty.ts
govuk_publishing_components-17.13.0 node_modules/rxjs/src/operators/isEmpty.ts
govuk_publishing_components-17.12.2 node_modules/rxjs/src/operators/isEmpty.ts
govuk_publishing_components-17.12.1 node_modules/rxjs/src/operators/isEmpty.ts
govuk_publishing_components-17.12.0 node_modules/rxjs/src/operators/isEmpty.ts
govuk_publishing_components-17.11.0 node_modules/rxjs/src/operators/isEmpty.ts
govuk_publishing_components-17.10.0 node_modules/rxjs/src/operators/isEmpty.ts
govuk_publishing_components-17.9.0 node_modules/rxjs/src/operators/isEmpty.ts