@graphql-tools/links
Version:
A set of utils for faster development of GraphQL tools
28 lines (27 loc) • 1.08 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.linkToExecutor = linkToExecutor;
const tslib_1 = require("tslib");
const apolloImport = tslib_1.__importStar(require("@apollo/client"));
const utils_1 = require("@graphql-tools/utils");
const apollo = apolloImport?.default ?? apolloImport;
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 = (0, utils_1.getOperationASTFromRequest)(request);
if (operationAst.operation === 'subscription') {
return (0, utils_1.observableToAsyncIterable)(observable);
}
return apollo.toPromise(observable);
};
}
;