aboutsummaryrefslogtreecommitdiffstats
path: root/node_modules/rxjs/dist/esm/internal/operators/bufferCount.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/rxjs/dist/esm/internal/operators/bufferCount.js')
-rw-r--r--node_modules/rxjs/dist/esm/internal/operators/bufferCount.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/node_modules/rxjs/dist/esm/internal/operators/bufferCount.js b/node_modules/rxjs/dist/esm/internal/operators/bufferCount.js
new file mode 100644
index 0000000..2cf2880
--- /dev/null
+++ b/node_modules/rxjs/dist/esm/internal/operators/bufferCount.js
@@ -0,0 +1,37 @@
+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 \ No newline at end of file
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage