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/debounceTime.js | 43 ++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 node_modules/rxjs/dist/esm/internal/operators/debounceTime.js (limited to 'node_modules/rxjs/dist/esm/internal/operators/debounceTime.js') diff --git a/node_modules/rxjs/dist/esm/internal/operators/debounceTime.js b/node_modules/rxjs/dist/esm/internal/operators/debounceTime.js new file mode 100644 index 0000000..28c058a --- /dev/null +++ b/node_modules/rxjs/dist/esm/internal/operators/debounceTime.js @@ -0,0 +1,43 @@ +import { asyncScheduler } from '../scheduler/async'; +import { operate } from '../util/lift'; +import { createOperatorSubscriber } from './OperatorSubscriber'; +export function debounceTime(dueTime, scheduler = asyncScheduler) { + return operate((source, subscriber) => { + let activeTask = null; + let lastValue = null; + let lastTime = null; + const emit = () => { + if (activeTask) { + activeTask.unsubscribe(); + activeTask = null; + const value = lastValue; + lastValue = null; + subscriber.next(value); + } + }; + function emitWhenIdle() { + const targetTime = lastTime + dueTime; + const now = scheduler.now(); + if (now < targetTime) { + activeTask = this.schedule(undefined, targetTime - now); + subscriber.add(activeTask); + return; + } + emit(); + } + source.subscribe(createOperatorSubscriber(subscriber, (value) => { + lastValue = value; + lastTime = scheduler.now(); + if (!activeTask) { + activeTask = scheduler.schedule(emitWhenIdle, dueTime); + subscriber.add(activeTask); + } + }, () => { + emit(); + subscriber.complete(); + }, undefined, () => { + lastValue = activeTask = null; + })); + }); +} +//# sourceMappingURL=debounceTime.js.map \ No newline at end of file -- cgit v1.2.3