123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.graphql = graphql;
- exports.graphqlSync = graphqlSync;
- var _isPromise = _interopRequireDefault(require("./jsutils/isPromise"));
- var _parser = require("./language/parser");
- var _validate = require("./validation/validate");
- var _validate2 = require("./type/validate");
- var _execute = require("./execution/execute");
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function graphql(argsOrSchema, source, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver) {
- var _arguments = arguments;
- /* eslint-enable no-redeclare */
- // Always return a Promise for a consistent API.
- return new Promise(function (resolve) {
- return resolve( // Extract arguments from object args if provided.
- _arguments.length === 1 ? graphqlImpl(argsOrSchema) : graphqlImpl({
- schema: argsOrSchema,
- source: source,
- rootValue: rootValue,
- contextValue: contextValue,
- variableValues: variableValues,
- operationName: operationName,
- fieldResolver: fieldResolver,
- typeResolver: typeResolver
- }));
- });
- }
- /**
- * The graphqlSync function also fulfills GraphQL operations by parsing,
- * validating, and executing a GraphQL document along side a GraphQL schema.
- * However, it guarantees to complete synchronously (or throw an error) assuming
- * that all field resolvers are also synchronous.
- */
- function graphqlSync(argsOrSchema, source, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver) {
- /* eslint-enable no-redeclare */
- // Extract arguments from object args if provided.
- var result = arguments.length === 1 ? graphqlImpl(argsOrSchema) : graphqlImpl({
- schema: argsOrSchema,
- source: source,
- rootValue: rootValue,
- contextValue: contextValue,
- variableValues: variableValues,
- operationName: operationName,
- fieldResolver: fieldResolver,
- typeResolver: typeResolver
- }); // Assert that the execution was synchronous.
- if ((0, _isPromise.default)(result)) {
- throw new Error('GraphQL execution failed to complete synchronously.');
- }
- return result;
- }
- function graphqlImpl(args) {
- var schema = args.schema,
- source = args.source,
- rootValue = args.rootValue,
- contextValue = args.contextValue,
- variableValues = args.variableValues,
- operationName = args.operationName,
- fieldResolver = args.fieldResolver,
- typeResolver = args.typeResolver; // Validate Schema
- var schemaValidationErrors = (0, _validate2.validateSchema)(schema);
- if (schemaValidationErrors.length > 0) {
- return {
- errors: schemaValidationErrors
- };
- } // Parse
- var document;
- try {
- document = (0, _parser.parse)(source);
- } catch (syntaxError) {
- return {
- errors: [syntaxError]
- };
- } // Validate
- var validationErrors = (0, _validate.validate)(schema, document);
- if (validationErrors.length > 0) {
- return {
- errors: validationErrors
- };
- } // Execute
- return (0, _execute.execute)({
- schema: schema,
- document: document,
- rootValue: rootValue,
- contextValue: contextValue,
- variableValues: variableValues,
- operationName: operationName,
- fieldResolver: fieldResolver,
- typeResolver: typeResolver
- });
- }
|