1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, '__esModule', {
|
4 | value: true,
|
5 | });
|
6 | exports.graphql = graphql;
|
7 | exports.graphqlSync = graphqlSync;
|
8 |
|
9 | var _devAssert = require('./jsutils/devAssert.js');
|
10 |
|
11 | var _isPromise = require('./jsutils/isPromise.js');
|
12 |
|
13 | var _parser = require('./language/parser.js');
|
14 |
|
15 | var _validate = require('./type/validate.js');
|
16 |
|
17 | var _validate2 = require('./validation/validate.js');
|
18 |
|
19 | var _execute = require('./execution/execute.js');
|
20 |
|
21 | function graphql(args) {
|
22 |
|
23 | return new Promise((resolve) => resolve(graphqlImpl(args)));
|
24 | }
|
25 |
|
26 |
|
27 |
|
28 |
|
29 |
|
30 |
|
31 |
|
32 | function graphqlSync(args) {
|
33 | const result = graphqlImpl(args);
|
34 |
|
35 | if ((0, _isPromise.isPromise)(result)) {
|
36 | throw new Error('GraphQL execution failed to complete synchronously.');
|
37 | }
|
38 |
|
39 | return result;
|
40 | }
|
41 |
|
42 | function graphqlImpl(args) {
|
43 |
|
44 | arguments.length < 2 ||
|
45 | (0, _devAssert.devAssert)(
|
46 | false,
|
47 | 'graphql@16 dropped long-deprecated support for positional arguments, please pass an object instead.',
|
48 | );
|
49 | const {
|
50 | schema,
|
51 | source,
|
52 | rootValue,
|
53 | contextValue,
|
54 | variableValues,
|
55 | operationName,
|
56 | fieldResolver,
|
57 | typeResolver,
|
58 | } = args;
|
59 |
|
60 | const schemaValidationErrors = (0, _validate.validateSchema)(schema);
|
61 |
|
62 | if (schemaValidationErrors.length > 0) {
|
63 | return {
|
64 | errors: schemaValidationErrors,
|
65 | };
|
66 | }
|
67 |
|
68 | let document;
|
69 |
|
70 | try {
|
71 | document = (0, _parser.parse)(source);
|
72 | } catch (syntaxError) {
|
73 | return {
|
74 | errors: [syntaxError],
|
75 | };
|
76 | }
|
77 |
|
78 | const validationErrors = (0, _validate2.validate)(schema, document);
|
79 |
|
80 | if (validationErrors.length > 0) {
|
81 | return {
|
82 | errors: validationErrors,
|
83 | };
|
84 | }
|
85 |
|
86 | return (0, _execute.execute)({
|
87 | schema,
|
88 | document,
|
89 | rootValue,
|
90 | contextValue,
|
91 | variableValues,
|
92 | operationName,
|
93 | fieldResolver,
|
94 | typeResolver,
|
95 | });
|
96 | }
|