UNPKG

@reactivex/ix-esnext-esm

Version:

The Interactive Extensions for JavaScript

22 lines (20 loc) 759 B
import { RefCountList } from '../../iterable/operators/_refcountlist'; import { create } from '../create'; import { MemoizeAsyncBuffer } from './memoize'; class PublishedAsyncBuffer extends MemoizeAsyncBuffer { constructor(source) { super(source, new RefCountList(0)); } [Symbol.asyncIterator]() { this._buffer.readerCount++; return this._getIterable(this._buffer.count)[Symbol.asyncIterator](); } } export function publish(selector) { return function publishOperatorFunction(source) { return selector ? create(async () => selector(publish()(source))[Symbol.asyncIterator]()) : new PublishedAsyncBuffer(source[Symbol.asyncIterator]()); }; } //# sourceMappingURL=publish.mjs.map