export function debounce void>(fn: T, delay = 200) { let timer: ReturnType | null = null; return (...args: Parameters) => { if (timer) clearTimeout(timer); timer = setTimeout(async () => await fn(...args), delay); }; }