@empathyco/x-components
Version:
Empathy X Components
37 lines • 1.73 kB
TypeScript
import type { DebouncedFunction, DebounceOptions } from './types';
/**
* Util function that returns a debounced version of the function passed as parameter. It can use
* the leading strategy, trailing strategy or both. Using both would result in one leading
* execution guaranteed and trailing executions only if there are further calls during the length
* of the debounce time.
*
* @param fn - Function to be debounced.
* @returns A new function with the debounce.
*
* @example Debounce options:
*
* Given this code, where you configure the `trailing` and `leading` options:
*
* ```js
* const log = debounce(name => console.log(name), 1000, {
* leading
* trailing
* });
*
* log('a'); // +0ms
* log('b'); // +0ms
* log('c'); // +0ms
* setTimeout(() => log('d'), 1000); // +1000ms
* setTimeout(() => log('e'), 1500); // +500ms
* setTimeout(() => log('f'), 2600); // +1100ms
* ```
*
* | \\ trailing<br/> leading \\ | **`false`** | **`true`** |
* |:----------------------------------------------------------------------------------------------------------|-------------|---------------|
* | **`false`** | | c, e, f |
* | **`true`** | a, d, f | a, c, d, e, f |
*
* @public
*/
export declare const debounce: <Params extends any[]>(fn: (...args: Params) => void, debounceTimeInMs: number, { leading, trailing }?: DebounceOptions) => DebouncedFunction<Params>;
//# sourceMappingURL=debounce.d.ts.map