@newbiz/axios-libs
Version:
신사업 프론트엔드 Axios 래핑 라이브러리
1 lines • 5.81 kB
JavaScript
;var e=this&&this.__assign||function(){return(e=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)},t=this&&this.__read||function(e,t){var o="function"==typeof Symbol&&e[Symbol.iterator];if(!o)return e;var r,n,l=o.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=l.next()).done;)a.push(r.value)}catch(e){n={error:e}}finally{try{r&&!r.done&&(o=l.return)&&o.call(l)}finally{if(n)throw n.error}}return a},o=this&&this.__spread||function(){for(var e=[],o=0;o<arguments.length;o++)e=e.concat(t(arguments[o]));return e},r=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 e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.cancelAllRequests=exports.reset=exports.axiosDefaultConfig=exports.axios=void 0;var l=n(require("axios")),a=n(require("deepmerge")),s={defaults:{headers:{common:{},get:{"Content-Type":"application/json;charset=UTF-8"},head:{"Content-Type":"application/json;charset=UTF-8"},patch:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"},post:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"},put:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"},delete:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"}},method:"GET",withCredentials:!0,timeout:5e3},isShowLog:!0,isLogFullResponse:!1,isThrowsOnError:!0,onRequest:function(){},onResponse:function(){},onRequestError:function(){},onResponseError:function(){},onInvalidate:function(){}},i=[],u=[],c=0,f=!1,p=e({},s);function getTag(e,t,o){return["%c"+e,"color:"+t+";background-color:"+o+";border-radius:4px;line-height:1;padding:"+(3===e.length?"3px 10px 2px 9px":"3px 6px 2px")]}function getRequestParamsData(e,t){var o,r;if(void 0===t&&(t=0),e){var n={},l=t>0&&2!==Math.floor(t/100)?"("+t+") ":"",a=null!==(o=e.url)&&void 0!==o?o:"",s=a.startsWith("http")||a.startsWith("//")?a:""+(e.baseURL||"")+e.url,i=!0;return e.data&&(n.data=e.data,i=!1),e.params&&(n.params=e.params,i=!1),[""+l+String(null!==(r=e.method)&&void 0!==r?r:"GET").toUpperCase()+" "+s,i?void 0:n].filter(Boolean)}return[]}exports.axios=l.default,exports.axiosDefaultConfig=function axiosDefaultConfig(e){f||(f=!0,e&&(p=a.default(p,e)),p.defaults&&Object.keys(p.defaults).forEach(function(e){var t;return l.default.defaults[e]=null===(t=p.defaults)||void 0===t?void 0:t[e]}),p.resolveRequestURL&&Object.keys(p.resolveRequestURL).forEach(function(e){return u.push(e)}),l.default.interceptors.request.use(function(e){var t,n;if(c++,u.length){var a=function resolveRequestUrl(e,t){var o,n,l,a,s,i,c,f,d={baseURL:e,url:t};if(e)try{for(var h=r(u),v=h.next();!v.done;v=h.next()){var g=v.value;if(e.startsWith(g)){d.baseURL=e.replace(g,null!==(i=null===(s=p.resolveRequestURL)||void 0===s?void 0:s[g])&&void 0!==i?i:"");break}}}catch(e){o={error:e}}finally{try{v&&!v.done&&(n=h.return)&&n.call(h)}finally{if(o)throw o.error}}if(t&&"/"!==t)try{for(var R=r(u),y=R.next();!y.done;y=R.next()){var g=y.value;if(t.startsWith(g)){d.url=t.replace(g,null!==(f=null===(c=p.resolveRequestURL)||void 0===c?void 0:c[g])&&void 0!==f?f:"");break}}}catch(e){l={error:e}}finally{try{y&&!y.done&&(a=R.return)&&a.call(R)}finally{if(l)throw l.error}}return d.baseURL&&d.url&&d.url.startsWith(d.baseURL)&&(d.url=d.url.replace(d.baseURL,"")),d}(e.baseURL,e.url),s=a.baseURL,f=a.url;e.baseURL=s,e.url=f}return e.cancelToken=e.cancelToken||new l.default.CancelToken(function(t){return i.push({config:e,cancel:t})}),function logRequest(e){p.isShowLog&&console.info.apply(console,o(getTag("REQ","white","blue"),getRequestParamsData(e)))}(e),null!==(n=null===(t=p.onRequest)||void 0===t?void 0:t.call(p,e,c))&&void 0!==n?n:e},function(e){var t,r;if(--c||(i.length=0),function logRequestError(e){p.isShowLog&&e&&(l.default.isCancel(e)||console.info.apply(console,o(getTag("INV","black","yellow"),[e])))}(e),null===(t=p.onRequestError)||void 0===t||t.call(p,e,c),null===(r=p.onInvalidate)||void 0===r||r.call(p,"request",e),p.isThrowsOnError)throw e}),l.default.interceptors.response.use(function(e){var t,r;if(--c||(i.length=0),e)return function logResponse(e){p.isShowLog&&console.info.apply(console,o(getTag("SUCC","white","green"),getRequestParamsData(e.config,e.status),[p.isLogFullResponse?e:e.data]))}(e),null!==(r=null===(t=p.onResponse)||void 0===t?void 0:t.call(p,e,c))&&void 0!==r?r:e;throw new Error("No Responses.")},function(e){var t,r;if(--c||(i.length=0),function logResponseError(e){p.isShowLog&&e&&(l.default.isCancel(e)||console.info.apply(console,o(getTag("ERR","black","red"),[e])))}(e),null===(t=p.onResponseError)||void 0===t||t.call(p,e,c),null===(r=p.onInvalidate)||void 0===r||r.call(p,"response",e),p.isThrowsOnError)throw e}))},exports.reset=function reset(){return new Promise(function(t){var o=setTimeout(function(){return c=0},1e3),r=setInterval(function(){c||(clearTimeout(o),clearInterval(r),u.length=0,p=e({},s),l.default.defaults={},l.default.interceptors.request.use(),l.default.interceptors.response.use(),f=!1,t())},100)})},exports.cancelAllRequests=function cancelAllRequests(e){i.length&&(p.isShowLog&&(console.info.apply(console,o(getTag("STOP","black","darkgray"),[i.length+" request"+(i.length>1?"s":"")+" cancelled by user."])),i.forEach(function(e){return console.info.apply(console,o(["%c❌","margin-right:-8px;"],getRequestParamsData(e.config)))})),i.forEach(function(t){return t.cancel(e)}),i.length=0)};