From e4fa1e69e7ebfb627c7198fd1a9881e9327ec4d4 Mon Sep 17 00:00:00 2001 From: Pinapelz Date: Sat, 28 Jun 2025 17:26:46 -0700 Subject: initial commit: scaffolding --- .../dist/esm/internal/operators/bufferToggle.js | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 node_modules/rxjs/dist/esm/internal/operators/bufferToggle.js (limited to 'node_modules/rxjs/dist/esm/internal/operators/bufferToggle.js') diff --git a/node_modules/rxjs/dist/esm/internal/operators/bufferToggle.js b/node_modules/rxjs/dist/esm/internal/operators/bufferToggle.js new file mode 100644 index 0000000..dfefe4a --- /dev/null +++ b/node_modules/rxjs/dist/esm/internal/operators/bufferToggle.js @@ -0,0 +1,33 @@ +import { Subscription } from '../Subscription'; +import { operate } from '../util/lift'; +import { innerFrom } from '../observable/innerFrom'; +import { createOperatorSubscriber } from './OperatorSubscriber'; +import { noop } from '../util/noop'; +import { arrRemove } from '../util/arrRemove'; +export function bufferToggle(openings, closingSelector) { + return operate((source, subscriber) => { + const buffers = []; + innerFrom(openings).subscribe(createOperatorSubscriber(subscriber, (openValue) => { + const buffer = []; + buffers.push(buffer); + const closingSubscription = new Subscription(); + const emitBuffer = () => { + arrRemove(buffers, buffer); + subscriber.next(buffer); + closingSubscription.unsubscribe(); + }; + closingSubscription.add(innerFrom(closingSelector(openValue)).subscribe(createOperatorSubscriber(subscriber, emitBuffer, noop))); + }, noop)); + source.subscribe(createOperatorSubscriber(subscriber, (value) => { + for (const buffer of buffers) { + buffer.push(value); + } + }, () => { + while (buffers.length > 0) { + subscriber.next(buffers.shift()); + } + subscriber.complete(); + })); + }); +} +//# sourceMappingURL=bufferToggle.js.map \ No newline at end of file -- cgit v1.2.3