xior
Version:
A lite http request lib based on fetch with plugins support and similar API to axios.
1 lines • 1.18 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.xiorTokenRefresh=t():e.xiorTokenRefresh=t()}(this,(function(){return function(){"use strict";var e={};return{109:function(e,t){var n=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(i,r){function u(e){try{f(o.next(e))}catch(e){r(e)}}function s(e){try{f(o.throw(e))}catch(e){r(e)}}function f(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(u,s)}f((o=o.apply(e,t||[])).next())}))};function o(e){return(null==e?void 0:e.status)&&[401].includes(e.status)}Object.defineProperty(t,"__esModule",{value:!0}),t.defaultShouldRefresh=o,t.default=function(e,t){const i=(null==t?void 0:t.shouldRefresh)||o;let r=!1;const u=[];e.interceptors.response.use((e=>n(this,void 0,void 0,(function*(){return e}))),(e=>n(this,void 0,void 0,(function*(){if((null==e?void 0:e.response)&&i(e.response))if(r)yield new Promise((e=>{u.push(e)}));else{r=!0;try{yield t.refreshToken(e)}finally{r=!1,u.forEach((e=>e()))}}return Promise.reject(e)}))))}}}[109](0,e),e.default}()}));