UNPKG

simple-lazy-debounce

Version:
30 lines (29 loc) 720 B
const u = (r, c) => { const o = { // 'let' 대신 'const' 사용 defaultDelay: 300, maxDelay: 500, latencyIncrement: 100, ...c }; for (const n in o) { const t = o[n]; if (!Number.isInteger(t) || t !== void 0 && t < 0) throw new Error( `Invalid option value for key '${n}': ${t}. It must be a non-negative integer.` ); } const { defaultDelay: a, maxDelay: m, latencyIncrement: s } = o; let e = a ?? 300, l = 0, i; return (...n) => { Date.now() - l > e ? e = Math.min( e + (s ?? 100), m ?? 500 ) : e = a ?? 300, clearTimeout(i), i = setTimeout(() => { r(...n), l = Date.now(); }, e); }; }; export { u as SimpleLazyDebounce };