UNPKG

xior

Version:

A lite http request lib based on fetch with plugins support and similar API to axios.

2 lines (1 loc) 1.71 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk646GK2HSjs = require('../chunk-646GK2HS.js');var _chunkPXDN3KFOjs = require('../chunk-PXDN3KFO.js');var _tinylru = require('tiny-lru');function F(C={}){let{enableCache:g,defaultCache:E=_tinylru.lru.call(void 0, C.cacheItems||100),useCacheFirst:q,onCacheRequest:x}=C;return function(t){return a=>_chunkPXDN3KFOjs.d.call(void 0, this,null,function*(){let{enableCache:h=g,defaultCache:I=E,useCacheFirst:m=q,onCacheRequest:f=x,paramsSerializer:O}=a,w=a.method===_chunk646GK2HSjs.n||a.isGet,l=typeof h,u=l===_chunk646GK2HSjs.b,c=_chunk646GK2HSjs.i;if(u&&(c=h(a)),c===_chunk646GK2HSjs.i&&(c=u||l===`${_chunk646GK2HSjs.i}`?w:!!h),!c)return t(a);let o=I,r=_chunk646GK2HSjs.v.call(void 0, a.url&&_chunk646GK2HSjs.z.call(void 0, a.url)?a.url:_chunk646GK2HSjs.A.call(void 0, a.baseURL,a.url),{a:a.data,b:a.params},O);try{if(m){let e=o.get(r);if(o.set(r,{loading:!0,res:e==null?void 0:e.res,cacheTime:e==null?void 0:e.cacheTime}),e!=null&&e.res)return e!=null&&e.loading||(f==null||f(a),_chunkPXDN3KFOjs.d.call(void 0, this,null,function*(){try{let b=yield t(a);o.set(r,{loading:!1,res:b,cacheTime:Date.now()})}catch(b){let i=o.get(r);m&&o.set(r,{loading:!1,res:i==null?void 0:i.res,cacheTime:i==null?void 0:i.cacheTime})}})),e.res.fromCache=!0,e.res.cacheTime=e==null?void 0:e.cacheTime,e==null?void 0:e.res}let n=yield t(a);return o.set(r,{loading:!1,res:n,cacheTime:Date.now()}),n}catch(n){let e=o.get(r);if(m&&o.set(r,{loading:!1,res:e==null?void 0:e.res,cacheTime:e==null?void 0:e.cacheTime}),e!=null&&e.res)return e.res.fromCache=!0,e.res.error=n,e.res.cacheTime=e==null?void 0:e.cacheTime,e.res;throw n}})}}exports.default = F;