UNPKG

@mornya/restful-libs

Version:

The project of wrapped library for RESTful API processing module.

1 lines 10.8 kB
var a,l=this&&this.__assign||function(){return(l=Object.assign||function(e){for(var t,o=1,r=arguments.length;o<r;o++)for(var n in t=arguments[o])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}).apply(this,arguments)},s=this&&this.__rest||function(e,t){var o={};for(n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(o[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var r=0,n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(o[n[r]]=e[n[r]]);return o},u=this&&this.__read||function(e,t){var o="function"==typeof Symbol&&e[Symbol.iterator];if(!o)return e;var r,n,a=o.call(e),l=[];try{for(;(void 0===t||0<t--)&&!(r=a.next()).done;)l.push(r.value)}catch(e){n={error:e}}finally{try{r&&!r.done&&(o=a.return)&&o.call(a)}finally{if(n)throw n.error}}return l},i=this&&this.__spreadArray||function(e,t,o){if(o||2===arguments.length)for(var r,n=0,a=t.length;n<a;n++)!r&&n in t||((r=r||Array.prototype.slice.call(t,0,n))[n]=t[n]);return e.concat(r||Array.prototype.slice.call(t))},y=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,o=t&&e[t],r=0;if(o)return o.call(e);if(e&&"number"==typeof e.length)return{next:function(){return{value:(e=e&&r>=e.length?void 0:e)&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},e=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},c=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.AxiosRetry=void 0,exports.getInstance=getInstance,exports.reset=function reset(){var t;return new Promise(function(e){function Ea(){h.RequestPool.getCurrentRequests()||(clearInterval(t),t=void 0,v.length=0,q=l({},n),initializeDefaults(),h.RequestPool.burstCancelBooks(),e())}t=setInterval(Ea,100),Ea()})},exports.restApi=function restApi(e){a||(console.info.apply(console,i(i([],u((0,p.getTag)("WARN","black","yellow")),!1),["".concat(e.method?e.method.toUpperCase():"GET"," ").concat(null!=(t=e.baseURL)?t:"").concat(null!=(t=e.url)?t:"")],!1)),console.warn(f.default.UNINITIALIZED_DEFAULT_CONFIG),getInstance());e.baseURL&&!e.url&&(e.url=e.baseURL,delete e.baseURL);{var t,o,r;if(!q.isCancelDuplicateRequests||!h.RequestPool.hasCancelBook(e))return t=e.ignoreCancel,o=s(e,["ignoreCancel"]),r=null!=(r=null==(r=e.method)?void 0:r.toLowerCase())?r:"get",o=l(l({},o),{method:r}),e=null!=(r=null==(r=q.onAuthorize)?void 0:r.call(q,e))?r:"",o.headers||(o.headers={}),o.headers.authorization||o.headers.Authorization||(o.headers.authorization=e),t||(r=h.RequestPool.addCancelBook(o,t?function(){}:void 0),o.cancelToken=r.token),o["axios-retry"]?setAxiosRetry(o["axios-retry"]):null!=(e=null==a?void 0:a.defaults)&&e["axios-retry"]&&setAxiosRetry(null==(t=null==a?void 0:a.defaults)?void 0:t["axios-retry"]),a(o);logRequestError(f.default.CANCELLED_BY_DUPS)}return Promise.resolve(null)},exports.restApis=function restApis(e){var t;a||(o=e[0],console.info.apply(console,i(i([],u((0,p.getTag)("WARN","black","yellow")),!1),["".concat(o.method?o.method.toUpperCase():"GET"," ").concat(null!=(t=o.baseURL)?t:"").concat(null!=(t=o.url)?t:"").concat(1<e.length?" and other ".concat(e.length-1):"")],!1)),console.warn(f.default.UNINITIALIZED_DEFAULT_CONFIG),getInstance());{var o,n;if(e.length)return o=e.filter(function(e){return!h.RequestPool.hasCancelBook(e)}),n=h.RequestPool.addCancelBook(e[0]),c.default.all(o.map(function(e){var t=e.ignoreCancel,o=s(e,["ignoreCancel"]),r=null!=(r=null==(r=e.method)?void 0:r.toLowerCase())?r:"get",o=l(l({},o),{method:r}),e=null!=(r=null==(r=q.onAuthorize)?void 0:r.call(q,e))?r:"";return o.headers||(o.headers={}),o.headers.authorization||o.headers.Authorization||(o.headers.authorization=e),o.baseURL&&!o.url&&(o.url=o.baseURL,delete o.baseURL),t||(o.cancelToken=n.token),o["axios-retry"]?setAxiosRetry(o["axios-retry"]):null!=(r=null==a?void 0:a.defaults)&&r["axios-retry"]&&setAxiosRetry(null==(e=null==a?void 0:a.defaults)?void 0:e["axios-retry"]),a(o)}))}return Promise.resolve(null)},exports.cancelAllRequests=function cancelAllRequests(e){var t=h.RequestPool.getCurrentRequests();{var o;t&&(q.isShowLog&&(o=h.RequestPool.getCancelBooks()).length&&(console.info.apply(console,i(i([],u((0,p.getTag)("STOP","black","darkgray")),!1),[null!=e?e:"".concat(1===t?"A request was":"".concat(t," requests were")," cancelled by user.")],!1)),o.forEach(function(e){return console.info.apply(console,i(["%c❌","margin-right:-6px;"],u(getRequestParamsData(e.config)),!1))})),h.RequestPool.burstCancelBooks())}},exports.isCancelled=isCancelled,e(require("axios"))),t=require("axios-cache-interceptor"),o=e(require("axios-retry")),r=(exports.AxiosRetry=o.default,e(require("deepmerge"))),d=require("is-plain-object"),f=e(require("./Constants")),h=require("./RequestPool"),p=require("./Tag"),n={isShowLog:!0,isLogFullResponse:!1,truncateLogThreshold:0,isThrowsOnError:!0,isCancelDuplicateRequests:!1,requestsThreshold:100,onAuthorize:function(){},onRequest:function(e){return e},onResponse:function(e){return e},onRequestError:function(){},onResponseError:function(){},onInvalidate:function(){}},g=function(e){return!e.response||500<=e.response.status},v=[],R=l({},c.default.defaults),q=l({},n);function initializeDefaults(){a&&(a.defaults.headers.common=l(l({},R.headers.common),{"Content-Encoding":"UTF-8","Content-Type":f.default.CT_JSON}),a.defaults.headers.get=l(l({},R.headers.get),{"Content-Type":f.default.CT_JSON}),a.defaults.headers.head=l(l({},R.headers.head),{"Content-Type":f.default.CT_JSON}),a.defaults.headers.patch=l(l({},R.headers.patch),{"Content-Type":f.default.CT_FORM}),a.defaults.headers.post=l(l({},R.headers.post),{"Content-Type":f.default.CT_FORM}),a.defaults.headers.put=l(l({},R.headers.put),{"Content-Type":f.default.CT_FORM}),a.defaults.headers.delete=l(l({},R.headers.delete),{"Content-Type":f.default.CT_FORM}),a.defaults.method="get",a.defaults.withCredentials=!0,a.defaults.timeout=5e3,a.defaults.baseURL=void 0,a.interceptors.request.use(),a.interceptors.response.use())}function getInstance(e){return a&&!e||((q=e?(0,r.default)(q,e):q).resolveRequestURL&&Object.keys(q.resolveRequestURL).forEach(function(e){return v.push(e)}),a=(0,t.setupCache)(c.default.create()),initializeDefaults(),a.interceptors.request.use(function(e){var t,o,r=h.RequestPool.increaseRequest();if(q.requestsThreshold&&r>q.requestsThreshold)throw new c.default.Cancel(f.default.CANCELLED_BY_MAXCOUNT);return v.length&&(t=(o=function resolveRequestUrl(e,t){var o,r,n,a,l,s,u,i,c={baseURL:e,url:t};if(e){var d="".concat(e,"/");try{for(var f=y(v),h=f.next();!h.done;h=f.next()){var p=h.value;if(d.startsWith("".concat(p,"/"))){c.baseURL=e.replace(p,null!=(l=null==(a=q.resolveRequestURL)?void 0:a[p])?l:"");break}}}catch(e){o={error:e}}finally{try{h&&!h.done&&(i=f.return)&&i.call(f)}finally{if(o)throw o.error}}}if(t&&"/"!==t){d="".concat(t,"/");try{for(var g=y(v),R=g.next();!R.done;R=g.next()){p=R.value;if(d.startsWith("".concat(p,"/"))){c.url=t.replace(p,null!=(u=null==(s=q.resolveRequestURL)?void 0:s[p])?u:"");break}}}catch(e){r={error:e}}finally{try{R&&!R.done&&(n=g.return)&&n.call(g)}finally{if(r)throw r.error}}}c.baseURL&&null!=(i=c.url)&&i.startsWith(c.baseURL)&&(c.url=c.url.replace(c.baseURL,""));return c}(e.baseURL,e.url)).baseURL,o=o.url,e.baseURL=t,e.url=o),function logRequest(e){{var t,o;q.isShowLog&&(t=null!=(t=null==e?void 0:e["axios-retry"])?t:{},o=t.retryCount,o=void 0===o?0:o,t=void 0===(t=t.retries)?0:t,(o=0<o&&0<t?"[".concat(o,"/").concat(t,"]"):"")?console.info.apply(console,i(i(i([],u((0,p.getTag)("REQ","white","blue")),!1),[o],!1),u(getRequestParamsData(e)),!1)):console.info.apply(console,i(i([],u((0,p.getTag)("REQ","white","blue")),!1),u(getRequestParamsData(e)),!1)))}}(e),null!=(o=null==(t=q.onRequest)?void 0:t.call(q,e,r))?o:e},function(e){var t,o=h.RequestPool.decreaseRequest();if(logRequestError(e),null!=(t=q.onRequestError)&&t.call(q,e,o),null!=(t=q.onInvalidate)&&t.call(q,"request",e),q.isThrowsOnError)throw e}),a.interceptors.response.use(function(e){var t,o=h.RequestPool.decreaseRequest();if(e)return function logResponse(e){{var t;q.isShowLog&&(t=void 0,t=q.isLogFullResponse?q.truncateLogThreshold?l(l({},e),{data:getShorten(e.data)}):e:q.truncateLogThreshold?getShorten(e.data):e.data,e.cached&&(e.config.method="CACHED"),console.info.apply(console,i(i(i([],u((0,p.getTag)("SUCC","white","green")),!1),u(getRequestParamsData(e.config,e.status)),!1),[t],!1)))}}(e),!e.config.ignoreResponseCallback&&null!=(t=null==(t=q.onResponse)?void 0:t.call(q,e,o))?t:e;throw new Error(f.default.NO_RESPONSES)},function(e){var t=h.RequestPool.decreaseRequest(),o=null!=(o=null==(o=e.config)?void 0:o["axios-retry"])?o:{},r=o.retryCount,r=void 0===r?0:r,o=o.retries,o=void 0===o?0:o;if(0<o&&null!=g&&g(e)?r===o&&(logResponseError(e),null!=(r=q.onResponseError)&&r.call(q,e,t),null!=(o=q.onInvalidate))&&o.call(q,"response",e):(logResponseError(e),null!=(r=q.onResponseError)&&r.call(q,e,t),null!=(o=q.onInvalidate)&&o.call(q,"response",e)),q.isThrowsOnError)throw e})),a}function isCancelled(e){return c.default.isCancel(e)}function setAxiosRetry(e){e&&a&&(0,o.default)(a,l({retries:0,retryCondition:g},e))}function getRequestParamsData(e,t){var o,r,n,a,l,s;return void 0===t&&(t=0),e?(o={},s=0<t,r=null!=(r=e.url)?r:"/",r=f.default.REGEX_HAS_BASEURL.test(r)?r:"".concat(null!=(r=e.baseURL)?r:"").concat(e.url),n=e.method?e.method.toUpperCase():"GET",a=!0,e.data&&(o.data="string"==typeof e.data&&f.default.REGEX_IS_JSON.test(e.data)?JSON.parse(e.data):e.data,a=!1),e.params&&(o.params="string"==typeof e.params&&f.default.REGEX_IS_JSON.test(e.params)?JSON.parse(e.params):e.params,a=!1),(s?(s=void 0,(e=(null!=(e=e["axios-retry"])?e:{}).lastRequestTime)&&(l=1e3<(e=Date.now()-e)?Number(e/1e3).toFixed(2):e,e=1e3<e?"s":"ms",s="(".concat(l).concat(e,")")),[[2!==Math.floor(t/100)?"(".concat(t,")"):void 0,n,r,s].filter(Boolean).join(" "),a?void 0:o]):["".concat(n," ").concat(r),a?void 0:o]).filter(Boolean)):[]}function getShorten(r,e){void 0===e&&(e=1024);var n=0,t=JSON.stringify(r,function(e,t){var o;if(n<=(null!=(o=q.truncateLogThreshold)?o:1/0))n++;else{if("string"==typeof t)return 10<t.length?"".concat(t.slice(0,10),"..."):t;if((0,d.isPlainObject)(r))return"[object]";if(Array.isArray(r))return"[array]"}return t});return t.length>e?"".concat(t.slice(0,e),"...(truncated)"):t}function logRequestError(e){q.isShowLog&&e&&(isCancelled(e)||console.info.apply(console,i(i([],u((0,p.getTag)("INV","black","yellow")),!1),[e],!1)))}function logResponseError(e){q.isShowLog&&e.config&&console.info.apply(console,i(i(i([],u(isCancelled(e)?(0,p.getTag)("STOP","white","brown"):(0,p.getTag)("ERR","black","red")),!1),u(getRequestParamsData(e.config)),!1),[null!=(e=null==(e=e.response)?void 0:e.status)?e:""],!1))}