UNPKG

4.98 kBJavaScriptView Raw
1(function (global, factory) {
2 typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('apollo-link')) :
3 typeof define === 'function' && define.amd ? define(['exports', 'apollo-link'], factory) :
4 (factory((global.apolloLink = global.apolloLink || {}, global.apolloLink.error = {}),global.apolloLink.core));
5}(this, (function (exports,apolloLink) { 'use strict';
6
7 /* tslint:disable */
8 var __extends = (undefined && undefined.__extends) || (function () {
9 var extendStatics = function (d, b) {
10 extendStatics = Object.setPrototypeOf ||
11 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
12 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
13 return extendStatics(d, b);
14 };
15 return function (d, b) {
16 extendStatics(d, b);
17 function __() { this.constructor = d; }
18 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
19 };
20 })();
21 var onError = function (errorHandler) {
22 return new apolloLink.ApolloLink(function (operation, forward) {
23 return new apolloLink.Observable(function (observer) {
24 var sub;
25 var retriedSub;
26 var retriedResult;
27 try {
28 sub = forward(operation).subscribe({
29 next: function (result) {
30 if (result.errors) {
31 retriedResult = errorHandler({
32 graphQLErrors: result.errors,
33 response: result,
34 operation: operation,
35 forward: forward,
36 });
37 if (retriedResult) {
38 retriedSub = retriedResult.subscribe({
39 next: observer.next.bind(observer),
40 error: observer.error.bind(observer),
41 complete: observer.complete.bind(observer),
42 });
43 return;
44 }
45 }
46 observer.next(result);
47 },
48 error: function (networkError) {
49 retriedResult = errorHandler({
50 operation: operation,
51 networkError: networkError,
52 //Network errors can return GraphQL errors on for example a 403
53 graphQLErrors: networkError.result && networkError.result.errors,
54 forward: forward,
55 });
56 if (retriedResult) {
57 retriedSub = retriedResult.subscribe({
58 next: observer.next.bind(observer),
59 error: observer.error.bind(observer),
60 complete: observer.complete.bind(observer),
61 });
62 return;
63 }
64 observer.error(networkError);
65 },
66 complete: function () {
67 // disable the previous sub from calling complete on observable
68 // if retry is in flight.
69 if (!retriedResult) {
70 observer.complete.bind(observer)();
71 }
72 },
73 });
74 }
75 catch (e) {
76 errorHandler({ networkError: e, operation: operation, forward: forward });
77 observer.error(e);
78 }
79 return function () {
80 if (sub)
81 sub.unsubscribe();
82 if (retriedSub)
83 sub.unsubscribe();
84 };
85 });
86 });
87 };
88 var ErrorLink = /** @class */ (function (_super) {
89 __extends(ErrorLink, _super);
90 function ErrorLink(errorHandler) {
91 var _this = _super.call(this) || this;
92 _this.link = onError(errorHandler);
93 return _this;
94 }
95 ErrorLink.prototype.request = function (operation, forward) {
96 return this.link.request(operation, forward);
97 };
98 return ErrorLink;
99 }(apolloLink.ApolloLink));
100
101 exports.onError = onError;
102 exports.ErrorLink = ErrorLink;
103
104 Object.defineProperty(exports, '__esModule', { value: true });
105
106})));
107//# sourceMappingURL=bundle.umd.js.map