UNPKG

@empathyco/x-components

Version:
37 lines 1.73 kB
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 * ``` * * | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\\ 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