INNER CODE UNIT · TypeScript
setContext
apollographql/apollo-link · packages/apollo-link-context/src/index.ts:14
export function setContext(setter: ContextSetter): ApolloLink {
return new ApolloLink((operation: Operation, forward: NextLink) => {
const { ...request } = operation;
return new Observable(observer => {
let handle;
Promise.resolve(request)
.then(req => setter(req, operation.getContext()))
.then(operation.setContext)
.then(() => {
handle = forward(operation).subscribe({
next: observer.next.bind(observer),
error: observer.error.bind(observer),
complete: observer.complete.bind(observer),
});
})
.catch(observer.error.bind(observer));