UNPKG

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
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkVWMLZECEjs = require('../chunk-VWMLZECE.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===_chunkVWMLZECEjs.n||e.isGet,h=typeof s,m=h===_chunkVWMLZECEjs.b,n=_chunkVWMLZECEjs.i;m&&(n=s(e)),n===_chunkVWMLZECEjs.i&&(n=m||h===`${_chunkVWMLZECEjs.i}`?T:!!s);let o="";if(n){let r=P;o=_chunkVWMLZECEjs.v.call(void 0, e.url&&_chunkVWMLZECEjs.z.call(void 0, e.url)?e.url:_chunkVWMLZECEjs.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;