simple-lazy-debounce
Version:
Lazy delay support debounce function
2 lines (1 loc) • 682 B
JavaScript
(function(e,t){typeof exports=="object"&&typeof module<"u"?t(exports):typeof define=="function"&&define.amd?define(["exports"],t):(e=typeof globalThis<"u"?globalThis:e||self,t(e["simple-lazy-debounce"]={}))})(this,function(e){"use strict";const t=(r,{defaultDelay:n=300,maxDelay:s=500,latencyIncrement:u=100}={})=>{const p=[["defaultDelay",n],["maxDelay",s],["latencyIncrement",u]];for(const[i,l]of p)if(!Number.isInteger(l)||l<0)throw new Error(`Invalid option: ${i}`);let o=n,d=0,f;return(...i)=>{o=Date.now()-d>o?Math.min(o+u,s):n,clearTimeout(f),f=setTimeout(()=>{r(...i),d=Date.now()},o)}};e.SimpleLazyDebounce=t,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});