simple-lazy-debounce
Version:
Lazy delay support debounce function
2 lines (1 loc) • 564 B
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=(r,c)=>{const o={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:u,latencyIncrement:m}=o;let e=a??300,l=0,i;return(...n)=>{Date.now()-l>e?e=Math.min(e+(m??100),u??500):e=a??300,clearTimeout(i),i=setTimeout(()=>{r(...n),l=Date.now()},e)}};exports.SimpleLazyDebounce=s;