1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.graphql = graphql;
exports.graphqlSync = graphqlSync;
var _isPromise = _interopRequireDefault(require("./jsutils/isPromise.js"));
var _parser = require("./language/parser.js");
var _validate = require("./validation/validate.js");
var _validate2 = require("./type/validate.js");
var _execute = require("./execution/execute.js");
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
});
}
|