@naverpay/hidash
Version:
improved lodash
2 lines (1 loc) • 632 B
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=(d,i=0,{leading:m=!0,trailing:u=!0,maxWait:c}={})=>{let t=null,l=null,r,s=0,f=!1,e=null;const o=n=>{s=Date.now(),r=d(...n),l=null},T=n=>{o(n)},v=()=>{u&&l&&o(l),t=null,e&&(clearTimeout(e),e=null)};return{throttled:(...n)=>{if(f)return;const h=Date.now()-s;return t?u&&(l=n):(m&&h>=i?T(n):u&&(l=n),t=setTimeout(()=>{v()},i),c&&!e&&(e=setTimeout(()=>{u&&l&&o(l),clearTimeout(t),t=null,e=null},c))),r},cancel:()=>{f=!0,t&&clearTimeout(t),e&&clearTimeout(e),t=null,e=null,l=null}}};exports.default=a;exports.throttle=a;