UNPKG

@graphql-tools/executor

Version:

Fork of GraphQL.js' execute function

39 lines (38 loc) 1.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.executorFromSchema = void 0; exports.normalizedExecutor = normalizedExecutor; const graphql_1 = require("graphql"); const value_or_promise_1 = require("value-or-promise"); const utils_1 = require("@graphql-tools/utils"); const execute_js_1 = require("./execute.js"); function normalizedExecutor(args) { const operationAST = (0, graphql_1.getOperationAST)(args.document, args.operationName); if (operationAST == null) { throw new Error('Must provide an operation.'); } if (operationAST.operation === 'subscription') { return (0, execute_js_1.subscribe)(args); } return new value_or_promise_1.ValueOrPromise(() => (0, execute_js_1.execute)(args)) .then((result) => { if ('initialResult' in result) { return (0, execute_js_1.flattenIncrementalResults)(result); } return result; }) .resolve(); } exports.executorFromSchema = (0, utils_1.memoize1)(function executorFromSchema(schema) { return function schemaExecutor(request) { return normalizedExecutor({ schema, document: request.document, variableValues: request.variables, operationName: request.operationName, rootValue: request.rootValue, contextValue: request.context, signal: request.signal || request.info?.signal, }); }; });