1 import { ReplaySubject } from '../ReplaySubject';
2 export function shareReplay(configOrBufferSize, windowTime, scheduler) {
4 if (configOrBufferSize && typeof configOrBufferSize === 'object') {
5 config = configOrBufferSize;
9 bufferSize: configOrBufferSize,
15 return (source) => source.lift(shareReplayOperator(config));
17 function shareReplayOperator({ bufferSize = Number.POSITIVE_INFINITY, windowTime = Number.POSITIVE_INFINITY, refCount: useRefCount, scheduler }) {
22 let isComplete = false;
23 return function shareReplayOperation(source) {
26 if (!subject || hasError) {
28 subject = new ReplaySubject(bufferSize, windowTime, scheduler);
29 innerSub = subject.subscribe(this);
30 subscription = source.subscribe({
31 next(value) { subject.next(value); },
38 subscription = undefined;
44 innerSub = subject.subscribe(this);
48 innerSub.unsubscribe();
49 if (subscription && !isComplete && useRefCount && refCount === 0) {
50 subscription.unsubscribe();
51 subscription = undefined;
57 //# sourceMappingURL=shareReplay.js.map