@snap/camera-kit
Version:
Camera Kit Web
22 lines • 892 B
JavaScript
import { Observable, asyncScheduler, buffer, debounceTime, tap } from "rxjs";
export function debounceTimeAfter(amount, duration, scheduler = asyncScheduler) {
return (source) => {
return new Observable((subscriber) => {
let iterationCount = 0;
return source
.pipe(tap((value) => {
iterationCount++;
if (iterationCount <= amount) {
subscriber.next({ type: "initial", value });
}
}), buffer(source.pipe(debounceTime(duration, scheduler))), tap((values) => {
if (iterationCount > amount) {
subscriber.next({ type: "debounced", values: values.slice(amount) });
}
iterationCount = 0;
}))
.subscribe();
});
};
}
//# sourceMappingURL=debounceTimeAfter.js.map