watcher/ts/dettle/throttle.ts
2024-04-18 21:12:37 +02:00

22 lines
455 B
TypeScript

/* IMPORT */
import debounce from './debounce.js';
import type {FN, Throttled} from './types.js';
/* MAIN */
const throttle = <Args extends unknown[]> ( fn: FN<Args, unknown>, wait: number = 1, options?: { leading?: boolean, trailing?: boolean } ): Throttled<Args> => {
return debounce ( fn, wait, {
maxWait: wait,
leading: options?.leading ?? true,
trailing: options?.trailing ?? true
});
};
/* EXPORT */
export default throttle;