UNPKG

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