@tempots/std
Version:
Std library for TypeScript. Natural complement to the Tempo libraries.
2 lines (1 loc) • 777 B
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=(e,t)=>{const n=setTimeout(e,t);return()=>clearTimeout(n)},w=(e,t)=>{const n=setInterval(e,t);return()=>clearInterval(n)},b=(e,t,n={})=>{const{noTrailing:s=!1,noLeading:u=!1,debounceMode:c}=n;let o,f=!1,i=0;function d(){o&&clearTimeout(o)}function g(a){const{upcomingOnly:r=!1}=a||{};d(),f=!r}function m(...a){if(f)return;const r=this,T=Date.now()-i;function l(){i=Date.now(),t.apply(r,a)}function p(){o=void 0}!u&&c&&!o&&l(),d(),c===void 0&&T>e?u?(i=Date.now(),s||(o=setTimeout(c?p:l,e))):l():s||(o=setTimeout(c?p:l,c===void 0?e-T:e))}return m.cancel=g,m},D=(e,t,{atBegin:n=!1}={})=>b(e,t,{debounceMode:n!==!1});exports.debounce=D;exports.delayed=v;exports.interval=w;exports.throttle=b;