simple-lazy-debounce
Version:
Lazy delay support debounce function
2 lines (1 loc) • 780 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=(c,d)=>{const l={defaultDelay:300,maxDelay:500,latencyIncrement:100,...d};for(const i in l){const o=l[i];if(!Number.isInteger(o)||o!==void 0&&o<0)throw new Error(`Invalid option value for key '${i}': ${o}. It must be a non-negative integer.`)}const{defaultDelay:a,maxDelay:f,latencyIncrement:m}=l;let n=a??300,u=0,s;return(...i)=>{Date.now()-u>n?n=Math.min(n+(m??100),f??500):n=a??300,clearTimeout(s),s=setTimeout(()=>{c(...i),u=Date.now()},n)}};e.SimpleLazyDebounce=t,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});