diff options
| author | Pinapelz <yukais@pinapelz.com> | 2025-06-28 17:26:46 -0700 |
|---|---|---|
| committer | Pinapelz <yukais@pinapelz.com> | 2025-06-28 17:43:56 -0700 |
| commit | e4fa1e69e7ebfb627c7198fd1a9881e9327ec4d4 (patch) | |
| tree | 06284a538a6008eca75051399e47db4e5d50301c /node_modules/rxjs/dist/esm5/internal/operators/windowCount.js | |
initial commit: scaffolding
Diffstat (limited to 'node_modules/rxjs/dist/esm5/internal/operators/windowCount.js')
| -rw-r--r-- | node_modules/rxjs/dist/esm5/internal/operators/windowCount.js | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/node_modules/rxjs/dist/esm5/internal/operators/windowCount.js b/node_modules/rxjs/dist/esm5/internal/operators/windowCount.js new file mode 100644 index 0000000..e10cd4a --- /dev/null +++ b/node_modules/rxjs/dist/esm5/internal/operators/windowCount.js @@ -0,0 +1,53 @@ +import { __values } from "tslib"; +import { Subject } from '../Subject'; +import { operate } from '../util/lift'; +import { createOperatorSubscriber } from './OperatorSubscriber'; +export function windowCount(windowSize, startWindowEvery) { + if (startWindowEvery === void 0) { startWindowEvery = 0; } + var startEvery = startWindowEvery > 0 ? startWindowEvery : windowSize; + return operate(function (source, subscriber) { + var windows = [new Subject()]; + var starts = []; + var count = 0; + subscriber.next(windows[0].asObservable()); + source.subscribe(createOperatorSubscriber(subscriber, function (value) { + var e_1, _a; + try { + for (var windows_1 = __values(windows), windows_1_1 = windows_1.next(); !windows_1_1.done; windows_1_1 = windows_1.next()) { + var window_1 = windows_1_1.value; + window_1.next(value); + } + } + catch (e_1_1) { e_1 = { error: e_1_1 }; } + finally { + try { + if (windows_1_1 && !windows_1_1.done && (_a = windows_1.return)) _a.call(windows_1); + } + finally { if (e_1) throw e_1.error; } + } + var c = count - windowSize + 1; + if (c >= 0 && c % startEvery === 0) { + windows.shift().complete(); + } + if (++count % startEvery === 0) { + var window_2 = new Subject(); + windows.push(window_2); + subscriber.next(window_2.asObservable()); + } + }, function () { + while (windows.length > 0) { + windows.shift().complete(); + } + subscriber.complete(); + }, function (err) { + while (windows.length > 0) { + windows.shift().error(err); + } + subscriber.error(err); + }, function () { + starts = null; + windows = null; + })); + }); +} +//# sourceMappingURL=windowCount.js.map
\ No newline at end of file |
