xior
Version:
A lite http request lib based on fetch with plugins support and similar API to axios.
2 lines (1 loc) • 1.26 kB
JavaScript
;Object.defineProperty(exports, "__esModule", {value: true});var _chunk646GK2HSjs = require('../chunk-646GK2HS.js');var _chunkPXDN3KFOjs = require('../chunk-PXDN3KFO.js');var _tinylru = require('tiny-lru');function g(h={}){let{enableThrottle:P,threshold:q=1e3,throttleCache:v=_tinylru.lru.call(void 0, h.throttleItems||100),onThrottle:w}=h,o=v;return function(u){let I=(e,i)=>{let r=_chunkPXDN3KFOjs.d.call(void 0, this,null,function*(){try{let t=yield u(i);return o.set(e,{timestamp:Date.now(),value:Promise.resolve(t)}),t}catch(t){throw"delete"in o?o.delete(e):o.del(e),t}});return o.set(e,{timestamp:Date.now(),value:r}),r};return e=>_chunkPXDN3KFOjs.d.call(void 0, this,null,function*(){let{paramsSerializer:i,threshold:r=q,enableThrottle:t=P,onThrottle:l=w}=e,O=e.method===_chunk646GK2HSjs.n||e.isGet,m=typeof t,c=m===_chunk646GK2HSjs.b,s=_chunk646GK2HSjs.i;if(c&&(s=t(e)),s===_chunk646GK2HSjs.i&&(s=c||m===`${_chunk646GK2HSjs.i}`?O:!!t),s){let d=_chunk646GK2HSjs.v.call(void 0, e.url&&_chunk646GK2HSjs.z.call(void 0, e.url)?e.url:_chunk646GK2HSjs.A.call(void 0, e.baseURL,e.url),{a:e.data,b:e.params},i),p=Date.now(),b=o.get(d)||{timestamp:p},R=b.value;return R&&p-b.timestamp<=r?(l==null||l(e),R):I(d,e)}return u(e)})}}exports.default = g;