Sha256: fbbfe3b1a694d16dd250b478a0c6b12d9bbc4984e00a412c421a8f5906b747ac

Contents?: true

Size: 1.63 KB

Versions: 49

Compression:

Stored size: 1.63 KB

Contents

import { Observable } from '../Observable';
import { ReplaySubject } from '../ReplaySubject';
import { IScheduler } from '../Scheduler';
import { multicast } from './multicast';
import { ConnectableObservable } from '../observable/ConnectableObservable';
import { UnaryFunction, MonoTypeOperatorFunction, OperatorFunction } from '../interfaces';

/* tslint:disable:max-line-length */
export function publishReplay<T>(bufferSize?: number, windowTime?: number, scheduler?: IScheduler): UnaryFunction<Observable<T>, ConnectableObservable<T>>;
export function publishReplay<T>(bufferSize?: number, windowTime?: number, selector?: MonoTypeOperatorFunction<T>, scheduler?: IScheduler): MonoTypeOperatorFunction<T>;
export function publishReplay<T, R>(bufferSize?: number, windowTime?: number, selector?: OperatorFunction<T, R>, scheduler?: IScheduler): OperatorFunction<T, R>;
/* tslint:enable:max-line-length */

export function publishReplay<T, R>(bufferSize?: number,
                                    windowTime?: number,
                                    selectorOrScheduler?: IScheduler | OperatorFunction<T, R>,
                                    scheduler?: IScheduler): UnaryFunction<Observable<T>, ConnectableObservable<R> | Observable<R>> {

  if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') {
    scheduler = selectorOrScheduler;
  }

  const selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined;
  const subject = new ReplaySubject<T>(bufferSize, windowTime, scheduler);

  return (source: Observable<T>) => multicast(() => subject, selector)(source) as Observable<R> | ConnectableObservable<R>;
}

Version data entries

49 entries across 49 versions & 4 rubygems

Version Path
govuk_publishing_components-17.8.0 node_modules/rxjs/src/operators/publishReplay.ts
govuk_publishing_components-17.7.0 node_modules/rxjs/src/operators/publishReplay.ts
govuk_publishing_components-17.6.1 node_modules/rxjs/src/operators/publishReplay.ts
govuk_publishing_components-17.6.0 node_modules/rxjs/src/operators/publishReplay.ts
govuk_publishing_components-17.5.0 node_modules/rxjs/src/operators/publishReplay.ts
govuk_publishing_components-17.4.0 node_modules/rxjs/src/operators/publishReplay.ts
govuk_publishing_components-17.3.0 node_modules/rxjs/src/operators/publishReplay.ts
govuk_publishing_components-17.2.0 node_modules/rxjs/src/operators/publishReplay.ts
govuk_publishing_components-17.1.1 node_modules/rxjs/src/operators/publishReplay.ts
govuk_publishing_components-17.1.0 node_modules/rxjs/src/operators/publishReplay.ts
govuk_publishing_components-17.0.0 node_modules/rxjs/src/operators/publishReplay.ts
govuk_publishing_components-16.29.0 node_modules/rxjs/src/operators/publishReplay.ts
govuk_publishing_components-16.28.0 node_modules/rxjs/src/operators/publishReplay.ts
govuk_publishing_components-16.27.1 node_modules/rxjs/src/operators/publishReplay.ts
govuk_publishing_components-16.27.0 node_modules/rxjs/src/operators/publishReplay.ts
govuk_publishing_components-16.26.0 node_modules/rxjs/src/operators/publishReplay.ts
govuk_publishing_components-16.25.0 node_modules/rxjs/src/operators/publishReplay.ts
govuk_publishing_components-16.24.0 node_modules/rxjs/src/operators/publishReplay.ts
govuk_publishing_components-16.23.0 node_modules/rxjs/src/operators/publishReplay.ts
govuk_publishing_components-16.22.0 node_modules/rxjs/src/operators/publishReplay.ts