xior
Version:
A lite http request lib based on fetch with plugins support and similar API to axios.
2 lines (1 loc) • 1.16 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 O(c={}){let{enableCache:y,defaultCache:X=_tinylru.lru.call(void 0, c.cacheItems||100,c.cacheTime||1e3*60*5)}=c;return function(u){return e=>_chunkPXDN3KFOjs.d.call(void 0, this,null,function*(){let{enableCache:s=y,forceUpdate:R,defaultCache:P=X,paramsSerializer:I}=e,T=e.method===_chunk646GK2HSjs.n||e.isGet,h=typeof s,m=h===_chunk646GK2HSjs.b,n=_chunk646GK2HSjs.i;m&&(n=s(e)),n===_chunk646GK2HSjs.i&&(n=m||h===`${_chunk646GK2HSjs.i}`?T:!!s);let o="";if(n){let r=P;o=_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);let t=r.get(o);return!t||R?(t=_chunkPXDN3KFOjs.d.call(void 0, this,null,function*(){try{let a=yield u(e);return a&&(a.cacheKey=o),a}catch(a){throw"delete"in r?r.delete(o):r.del(o),a}}),r.set(o,t),t):t.then(a=>(a.fromCache=!0,a.cacheTime=Date.now(),o&&(a.cacheKey=o),a))}return u(e)})}}exports.default = O;