UNPKG

@graphql-tools/links

Version:

A set of utils for faster development of GraphQL tools

23 lines (22 loc) 886 B
import * as apolloImport from '@apollo/client'; import { getOperationASTFromRequest, observableToAsyncIterable, } from '@graphql-tools/utils'; const apollo = apolloImport?.default ?? apolloImport; export function linkToExecutor(link) { return function executorFromLink(request) { const observable = apollo.execute(link, { query: request.document, variables: request.variables, context: { graphqlContext: request.context, graphqlResolveInfo: request.info, clientAwareness: {}, }, extensions: request.extensions, }, {}); const operationAst = getOperationASTFromRequest(request); if (operationAst.operation === 'subscription') { return observableToAsyncIterable(observable); } return observable.toPromise(); }; }