@graphql-tools/links
Version:
A set of utils for faster development of GraphQL tools
27 lines (26 loc) • 1.03 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,
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 observable.toPromise();
};
}