You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.2 KiB
39 lines
1.2 KiB
4 months ago
|
'use strict';
|
||
|
|
||
|
Object.defineProperty(exports, '__esModule', { value: true });
|
||
|
|
||
|
var tslib = require('tslib');
|
||
|
var core = require('../core');
|
||
|
var utilities = require('../../utilities');
|
||
|
|
||
|
function setContext(setter) {
|
||
|
return new core.ApolloLink(function (operation, forward) {
|
||
|
var request = tslib.__rest(operation, []);
|
||
|
return new utilities.Observable(function (observer) {
|
||
|
var handle;
|
||
|
var closed = false;
|
||
|
Promise.resolve(request)
|
||
|
.then(function (req) { return setter(req, operation.getContext()); })
|
||
|
.then(operation.setContext)
|
||
|
.then(function () {
|
||
|
if (closed)
|
||
|
return;
|
||
|
handle = forward(operation).subscribe({
|
||
|
next: observer.next.bind(observer),
|
||
|
error: observer.error.bind(observer),
|
||
|
complete: observer.complete.bind(observer),
|
||
|
});
|
||
|
})
|
||
|
.catch(observer.error.bind(observer));
|
||
|
return function () {
|
||
|
closed = true;
|
||
|
if (handle)
|
||
|
handle.unsubscribe();
|
||
|
};
|
||
|
});
|
||
|
});
|
||
|
}
|
||
|
|
||
|
exports.setContext = setContext;
|
||
|
//# sourceMappingURL=context.cjs.map
|