UNPKG

apollo-link-refresh-token

Version:

A link to refresh auth tokens on authentication errors

3 lines (2 loc) 1.21 kB
"use strict";var e=require("apollo-link"),r=require("apollo-link-error");function n(){return(n=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var n=arguments[r];for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&(e[t]=n[t])}return e}).apply(this,arguments)}exports.getRefreshTokenLink=function(t){var o=t.isUnauthenticatedError,i=t.getAccessToken,a=t.getRefreshToken,c=t.isAccessTokenValid,s=t.fetchNewAccessToken,f=t.authorizationHeaderKey,u=t.onSuccessfulRefresh,h=t.onFailedRefresh;return r.onError((function(r){var t=r.graphQLErrors,l=r.operation,v=r.forward;if(t)for(var p=0;p<t.length;p+=1)if(o(t[p])){var d=function(){var r=i(),t=a();return r&&t&&!c(r)?{v:new e.Observable((function(e){s(t).then((function(e){if(!e)throw new Error("Unable to fetch new access token");l.setContext((function(r){var t,o=r.headers;return{headers:n({},void 0===o?{}:o,(t={},t[f]=e||void 0,t))}})),u&&u(t)})).then((function(){var r={next:e.next.bind(e),error:e.error.bind(e),complete:e.complete.bind(e)};v(l).subscribe(r)})).catch((function(r){h&&h(r),e.error(r)}))}))}:{v:v(l)}}();if("object"==typeof d)return d.v}return v(l)}))}; //# sourceMappingURL=apollo-link-refresh-token.cjs.production.min.js.map