UNPKG

1.27 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, '__esModule', { value: true });
4
5var tslib = require('tslib');
6var core = require('../core');
7var utilities = require('../../utilities');
8
9function setContext(setter) {
10 return new core.ApolloLink(function (operation, forward) {
11 var request = tslib.__rest(operation, []);
12 return new utilities.Observable(function (observer) {
13 var handle;
14 var closed = false;
15 Promise.resolve(request)
16 .then(function (req) { return setter(req, operation.getContext()); })
17 .then(operation.setContext)
18 .then(function () {
19 if (closed)
20 return;
21 handle = forward(operation).subscribe({
22 next: observer.next.bind(observer),
23 error: observer.error.bind(observer),
24 complete: observer.complete.bind(observer),
25 });
26 })
27 .catch(observer.error.bind(observer));
28 return function () {
29 closed = true;
30 if (handle)
31 handle.unsubscribe();
32 };
33 });
34 });
35}
36
37exports.setContext = setContext;
38//# sourceMappingURL=context.cjs.map