UNPKG

4.05 kBJavaScriptView Raw
1(function (global, factory) {
2 typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('tslib'), require('apollo-link')) :
3 typeof define === 'function' && define.amd ? define(['exports', 'tslib', 'apollo-link'], factory) :
4 (global = global || self, factory((global.apolloLink = global.apolloLink || {}, global.apolloLink.error = {}), global.tslib, global.apolloLink.core));
5}(this, (function (exports, tslib_1, apolloLink) { 'use strict';
6
7 function onError(errorHandler) {
8 return new apolloLink.ApolloLink(function (operation, forward) {
9 return new apolloLink.Observable(function (observer) {
10 var sub;
11 var retriedSub;
12 var retriedResult;
13 try {
14 sub = forward(operation).subscribe({
15 next: function (result) {
16 if (result.errors) {
17 retriedResult = errorHandler({
18 graphQLErrors: result.errors,
19 response: result,
20 operation: operation,
21 forward: forward,
22 });
23 if (retriedResult) {
24 retriedSub = retriedResult.subscribe({
25 next: observer.next.bind(observer),
26 error: observer.error.bind(observer),
27 complete: observer.complete.bind(observer),
28 });
29 return;
30 }
31 }
32 observer.next(result);
33 },
34 error: function (networkError) {
35 retriedResult = errorHandler({
36 operation: operation,
37 networkError: networkError,
38 graphQLErrors: networkError &&
39 networkError.result &&
40 networkError.result.errors,
41 forward: forward,
42 });
43 if (retriedResult) {
44 retriedSub = retriedResult.subscribe({
45 next: observer.next.bind(observer),
46 error: observer.error.bind(observer),
47 complete: observer.complete.bind(observer),
48 });
49 return;
50 }
51 observer.error(networkError);
52 },
53 complete: function () {
54 if (!retriedResult) {
55 observer.complete.bind(observer)();
56 }
57 },
58 });
59 }
60 catch (e) {
61 errorHandler({ networkError: e, operation: operation, forward: forward });
62 observer.error(e);
63 }
64 return function () {
65 if (sub)
66 sub.unsubscribe();
67 if (retriedSub)
68 sub.unsubscribe();
69 };
70 });
71 });
72 }
73 var ErrorLink = (function (_super) {
74 tslib_1.__extends(ErrorLink, _super);
75 function ErrorLink(errorHandler) {
76 var _this = _super.call(this) || this;
77 _this.link = onError(errorHandler);
78 return _this;
79 }
80 ErrorLink.prototype.request = function (operation, forward) {
81 return this.link.request(operation, forward);
82 };
83 return ErrorLink;
84 }(apolloLink.ApolloLink));
85
86 exports.ErrorLink = ErrorLink;
87 exports.onError = onError;
88
89 Object.defineProperty(exports, '__esModule', { value: true });
90
91})));
92//# sourceMappingURL=bundle.umd.js.map