UNPKG

@graphql-tools/links

Version:

A set of utils for faster development of GraphQL tools

24 lines (23 loc) 938 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, operationName: request.operationName, 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 apollo.toPromise(observable); }; }