Buckets:
| import { operate } from '../util/lift'; | |
| import { createOperatorSubscriber } from './OperatorSubscriber'; | |
| import { arrRemove } from '../util/arrRemove'; | |
| export function bufferCount(bufferSize, startBufferEvery = null) { | |
| startBufferEvery = startBufferEvery !== null && startBufferEvery !== void 0 ? startBufferEvery : bufferSize; | |
| return operate((source, subscriber) => { | |
| let buffers = []; | |
| let count = 0; | |
| source.subscribe(createOperatorSubscriber(subscriber, (value) => { | |
| let toEmit = null; | |
| if (count++ % startBufferEvery === 0) { | |
| buffers.push([]); | |
| } | |
| for (const buffer of buffers) { | |
| buffer.push(value); | |
| if (bufferSize <= buffer.length) { | |
| toEmit = toEmit !== null && toEmit !== void 0 ? toEmit : []; | |
| toEmit.push(buffer); | |
| } | |
| } | |
| if (toEmit) { | |
| for (const buffer of toEmit) { | |
| arrRemove(buffers, buffer); | |
| subscriber.next(buffer); | |
| } | |
| } | |
| }, () => { | |
| for (const buffer of buffers) { | |
| subscriber.next(buffer); | |
| } | |
| subscriber.complete(); | |
| }, undefined, () => { | |
| buffers = null; | |
| })); | |
| }); | |
| } | |
| //# sourceMappingURL=bufferCount.js.map |
Xet Storage Details
- Size:
- 1.39 kB
- Xet hash:
- 4361196e01e3671e7fd71453145b7f03cf7844853c50d183490d08efbb48bf02
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.