A debounce utility with multiple execution modes.
npm install debounce-toolkitimport { debounce, DebounceMode } from 'debounce-toolkit';
// Basic usage - executes after 1000ms delay
const debouncedFn = debounce(myFunction, 1000);
// Execute immediately, then wait
const leadingFn = debounce(myFunction, 1000, DebounceMode.LEADING);
// Execute immediately AND after delay
const bothFn = debounce(myFunction, 1000, DebounceMode.BOTH);TRAILING(default): Execute after delayLEADING: Execute immediately, ignore subsequent callsBOTH: Execute immediately and after delay
const fn = debounce(myFunction, 1000);
fn.cancel(); // Cancel pending execution
fn.flush(); // Execute immediately if pending
fn.pending(); // Returns true if execution is pendingconst autoSave = debounce(saveData, 1000);
input.addEventListener('input', autoSave);const handleClick = debounce(onClick, 2000, DebounceMode.LEADING);
button.addEventListener('click', handleClick);const search = debounce(fetchSuggestions, 300);
searchInput.addEventListener('input', (e) => search(e.target.value));debounce<T>(fn: T, wait?: number, mode?: DebounceMode): DebouncedFunction<T>
debounce<T>(fn: T, wait?: number, options?: DebounceOptions): DebouncedFunction<T>MIT