| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | import { ReplaySubject } from '../ReplaySubject';export function shareReplay(configOrBufferSize, windowTime, scheduler) {    let config;    if (configOrBufferSize && typeof configOrBufferSize === 'object') {        config = configOrBufferSize;    }    else {        config = {            bufferSize: configOrBufferSize,            windowTime,            refCount: false,            scheduler,        };    }    return (source) => source.lift(shareReplayOperator(config));}function shareReplayOperator({ bufferSize = Number.POSITIVE_INFINITY, windowTime = Number.POSITIVE_INFINITY, refCount: useRefCount, scheduler, }) {    let subject;    let refCount = 0;    let subscription;    let hasError = false;    let isComplete = false;    return function shareReplayOperation(source) {        refCount++;        let innerSub;        if (!subject || hasError) {            hasError = false;            subject = new ReplaySubject(bufferSize, windowTime, scheduler);            innerSub = subject.subscribe(this);            subscription = source.subscribe({                next(value) {                    subject.next(value);                },                error(err) {                    hasError = true;                    subject.error(err);                },                complete() {                    isComplete = true;                    subscription = undefined;                    subject.complete();                },            });            if (isComplete) {                subscription = undefined;            }        }        else {            innerSub = subject.subscribe(this);        }        this.add(() => {            refCount--;            innerSub.unsubscribe();            innerSub = undefined;            if (subscription && !isComplete && useRefCount && refCount === 0) {                subscription.unsubscribe();                subscription = undefined;                subject = undefined;            }        });    };}//# sourceMappingURL=shareReplay.js.map
 |