graphql 15.2.0 → 15.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +19 -10
- package/error/GraphQLError.js +8 -8
- package/error/GraphQLError.js.flow +2 -3
- package/error/GraphQLError.mjs +2 -2
- package/error/formatError.js +1 -1
- package/error/formatError.js.flow +0 -1
- package/error/index.js +4 -4
- package/error/index.js.flow +0 -1
- package/error/locatedError.d.ts +2 -2
- package/error/locatedError.js +10 -5
- package/error/locatedError.js.flow +10 -4
- package/error/locatedError.mjs +6 -4
- package/error/syntaxError.js +1 -1
- package/error/syntaxError.js.flow +0 -1
- package/execution/execute.d.ts +11 -15
- package/execution/execute.js +110 -110
- package/execution/execute.js.flow +132 -139
- package/execution/execute.mjs +92 -88
- package/execution/index.d.ts +1 -0
- package/execution/index.js +3 -3
- package/execution/index.js.flow +6 -2
- package/execution/values.js +11 -11
- package/execution/values.js.flow +0 -1
- package/graphql.js +5 -5
- package/graphql.js.flow +0 -1
- package/index.d.ts +2 -0
- package/index.js +9 -9
- package/index.js.flow +5 -2
- package/jsutils/ObjMap.js.flow +0 -1
- package/jsutils/Path.js.flow +0 -1
- package/jsutils/PromiseOrValue.js.flow +0 -1
- package/jsutils/defineInspect.js +2 -2
- package/jsutils/defineInspect.js.flow +0 -1
- package/jsutils/devAssert.js.flow +0 -1
- package/jsutils/didYouMean.js.flow +0 -1
- package/jsutils/identityFunc.js.flow +0 -1
- package/jsutils/inspect.js +1 -2
- package/jsutils/inspect.js.flow +10 -8
- package/jsutils/inspect.mjs +1 -1
- package/jsutils/instanceOf.js.flow +2 -3
- package/jsutils/invariant.js.flow +0 -1
- package/jsutils/isAsyncIterable.js +13 -0
- package/jsutils/isAsyncIterable.js.flow +14 -0
- package/jsutils/isAsyncIterable.mjs +10 -0
- package/jsutils/isObjectLike.js.flow +0 -1
- package/jsutils/isPromise.js.flow +0 -1
- package/jsutils/keyMap.js.flow +0 -1
- package/jsutils/keyValMap.js.flow +0 -1
- package/jsutils/mapValue.js +1 -1
- package/jsutils/mapValue.js.flow +0 -1
- package/jsutils/memoize3.js +2 -5
- package/jsutils/memoize3.js.flow +2 -5
- package/jsutils/memoize3.mjs +2 -5
- package/jsutils/naturalCompare.js +69 -0
- package/jsutils/naturalCompare.js.flow +59 -0
- package/jsutils/naturalCompare.mjs +61 -0
- package/jsutils/nodejsCustomInspectSymbol.js.flow +0 -1
- package/jsutils/printPathArray.js.flow +0 -1
- package/jsutils/promiseForObject.js.flow +0 -1
- package/jsutils/promiseReduce.js +1 -1
- package/jsutils/promiseReduce.js.flow +0 -1
- package/jsutils/safeArrayFrom.js +73 -0
- package/jsutils/safeArrayFrom.js.flow +59 -0
- package/jsutils/safeArrayFrom.mjs +66 -0
- package/jsutils/suggestionList.js +5 -1
- package/jsutils/suggestionList.js.flow +3 -2
- package/jsutils/suggestionList.mjs +3 -1
- package/jsutils/toObjMap.js +1 -1
- package/jsutils/toObjMap.js.flow +0 -1
- package/language/ast.js +1 -1
- package/language/ast.js.flow +0 -1
- package/language/blockString.d.ts +1 -1
- package/language/blockString.js +53 -32
- package/language/blockString.js.flow +51 -36
- package/language/blockString.mjs +54 -33
- package/language/directiveLocation.js.flow +0 -1
- package/language/experimentalOnlineParser/grammar.d.ts +1006 -0
- package/language/experimentalOnlineParser/grammar.js +987 -0
- package/language/experimentalOnlineParser/grammar.js.flow +1000 -0
- package/language/experimentalOnlineParser/grammar.mjs +980 -0
- package/language/experimentalOnlineParser/index.d.ts +6 -0
- package/language/experimentalOnlineParser/index.js +31 -0
- package/language/experimentalOnlineParser/index.js.flow +7 -0
- package/language/experimentalOnlineParser/index.mjs +1 -0
- package/language/experimentalOnlineParser/onlineParser.d.ts +125 -0
- package/language/experimentalOnlineParser/onlineParser.js +604 -0
- package/language/experimentalOnlineParser/onlineParser.js.flow +723 -0
- package/language/experimentalOnlineParser/onlineParser.mjs +587 -0
- package/language/index.js +12 -12
- package/language/index.js.flow +0 -1
- package/language/kinds.js.flow +0 -1
- package/language/lexer.js +242 -183
- package/language/lexer.js.flow +188 -184
- package/language/lexer.mjs +238 -179
- package/language/location.js.flow +0 -1
- package/language/parser.js +73 -68
- package/language/parser.js.flow +62 -57
- package/language/parser.mjs +64 -60
- package/language/predicates.js +1 -1
- package/language/predicates.js.flow +0 -1
- package/language/printLocation.js +1 -1
- package/language/printLocation.js.flow +0 -1
- package/language/printer.js +20 -13
- package/language/printer.js.flow +26 -25
- package/language/printer.mjs +18 -11
- package/language/source.d.ts +12 -6
- package/language/source.js +25 -9
- package/language/source.js.flow +26 -9
- package/language/source.mjs +19 -7
- package/language/tokenKind.js.flow +0 -1
- package/language/visitor.d.ts +3 -3
- package/language/visitor.js +5 -5
- package/language/visitor.js.flow +3 -4
- package/language/visitor.mjs +3 -3
- package/package.json +2 -3
- package/polyfills/arrayFrom.js +2 -2
- package/polyfills/arrayFrom.js.flow +1 -2
- package/polyfills/arrayFrom.mjs +1 -1
- package/polyfills/find.js +1 -1
- package/polyfills/find.js.flow +1 -2
- package/polyfills/find.mjs +1 -1
- package/polyfills/isFinite.js +1 -1
- package/polyfills/isFinite.js.flow +1 -2
- package/polyfills/isFinite.mjs +1 -1
- package/polyfills/isInteger.js +1 -1
- package/polyfills/isInteger.js.flow +1 -2
- package/polyfills/isInteger.mjs +1 -1
- package/polyfills/objectEntries.js +1 -1
- package/polyfills/objectEntries.js.flow +1 -2
- package/polyfills/objectEntries.mjs +1 -1
- package/polyfills/objectValues.js +1 -1
- package/polyfills/objectValues.js.flow +1 -2
- package/polyfills/objectValues.mjs +1 -1
- package/polyfills/symbols.js +3 -5
- package/polyfills/symbols.js.flow +9 -6
- package/polyfills/symbols.mjs +3 -5
- package/subscription/index.js +1 -1
- package/subscription/index.js.flow +0 -1
- package/subscription/mapAsyncIterator.js +2 -2
- package/subscription/mapAsyncIterator.js.flow +8 -9
- package/subscription/mapAsyncIterator.mjs +1 -1
- package/subscription/subscribe.js +61 -73
- package/subscription/subscribe.js.flow +71 -85
- package/subscription/subscribe.mjs +53 -65
- package/type/definition.d.ts +17 -9
- package/type/definition.js +37 -32
- package/type/definition.js.flow +93 -63
- package/type/definition.mjs +19 -14
- package/type/directives.js +17 -16
- package/type/directives.js.flow +20 -13
- package/type/directives.mjs +6 -5
- package/type/index.js +6 -6
- package/type/index.js.flow +0 -1
- package/type/introspection.js +86 -65
- package/type/introspection.js.flow +75 -43
- package/type/introspection.mjs +79 -58
- package/type/scalars.js +9 -9
- package/type/scalars.js.flow +1 -2
- package/type/scalars.mjs +1 -1
- package/type/schema.js +13 -13
- package/type/schema.js.flow +2 -3
- package/type/schema.mjs +1 -1
- package/type/validate.js +52 -19
- package/type/validate.js.flow +54 -8
- package/type/validate.mjs +43 -9
- package/utilities/TypeInfo.js +7 -7
- package/utilities/TypeInfo.js.flow +1 -2
- package/utilities/assertValidName.js +2 -2
- package/utilities/assertValidName.js.flow +0 -1
- package/utilities/astFromValue.js +14 -16
- package/utilities/astFromValue.js.flow +6 -7
- package/utilities/astFromValue.mjs +6 -7
- package/utilities/buildASTSchema.js +17 -27
- package/utilities/buildASTSchema.js.flow +5 -21
- package/utilities/buildASTSchema.mjs +11 -21
- package/utilities/buildClientSchema.js +16 -15
- package/utilities/buildClientSchema.js.flow +28 -12
- package/utilities/buildClientSchema.mjs +5 -4
- package/utilities/coerceInputValue.js +17 -18
- package/utilities/coerceInputValue.js.flow +12 -10
- package/utilities/coerceInputValue.mjs +7 -7
- package/utilities/concatAST.js +9 -8
- package/utilities/concatAST.js.flow +8 -8
- package/utilities/concatAST.mjs +9 -6
- package/utilities/extendSchema.js +26 -19
- package/utilities/extendSchema.js.flow +19 -7
- package/utilities/extendSchema.mjs +8 -1
- package/utilities/findBreakingChanges.js +15 -11
- package/utilities/findBreakingChanges.js.flow +6 -3
- package/utilities/findBreakingChanges.mjs +5 -2
- package/utilities/findDeprecatedUsages.js +2 -2
- package/utilities/findDeprecatedUsages.js.flow +0 -1
- package/utilities/getIntrospectionQuery.d.ts +6 -0
- package/utilities/getIntrospectionQuery.js +8 -2
- package/utilities/getIntrospectionQuery.js.flow +17 -5
- package/utilities/getIntrospectionQuery.mjs +8 -2
- package/utilities/getOperationAST.js +1 -1
- package/utilities/getOperationAST.js.flow +0 -1
- package/utilities/getOperationRootType.js +1 -1
- package/utilities/getOperationRootType.js.flow +0 -1
- package/utilities/index.d.ts +3 -0
- package/utilities/index.js +22 -22
- package/utilities/index.js.flow +0 -1
- package/utilities/introspectionFromSchema.js +7 -5
- package/utilities/introspectionFromSchema.js.flow +2 -1
- package/utilities/introspectionFromSchema.mjs +3 -1
- package/utilities/lexicographicSortSchema.js +13 -9
- package/utilities/lexicographicSortSchema.js.flow +21 -13
- package/utilities/lexicographicSortSchema.mjs +5 -2
- package/utilities/printSchema.js +15 -16
- package/utilities/printSchema.js.flow +23 -16
- package/utilities/printSchema.mjs +5 -6
- package/utilities/separateOperations.js +46 -42
- package/utilities/separateOperations.js.flow +46 -37
- package/utilities/separateOperations.mjs +44 -40
- package/utilities/stripIgnoredCharacters.js +6 -16
- package/utilities/stripIgnoredCharacters.js.flow +4 -13
- package/utilities/stripIgnoredCharacters.mjs +3 -10
- package/utilities/typeComparators.js +1 -1
- package/utilities/typeComparators.js.flow +0 -1
- package/utilities/typeFromAST.js +6 -6
- package/utilities/typeFromAST.js.flow +2 -3
- package/utilities/typeFromAST.mjs +2 -2
- package/utilities/typedQueryDocumentNode.d.ts +20 -0
- package/utilities/valueFromAST.js +6 -6
- package/utilities/valueFromAST.js.flow +4 -2
- package/utilities/valueFromASTUntyped.js +4 -4
- package/utilities/valueFromASTUntyped.js.flow +0 -1
- package/validation/ValidationContext.js +3 -3
- package/validation/ValidationContext.js.flow +3 -4
- package/validation/index.js +38 -38
- package/validation/index.js.flow +0 -1
- package/validation/rules/ExecutableDefinitions.js +1 -1
- package/validation/rules/ExecutableDefinitions.js.flow +0 -1
- package/validation/rules/ExecutableDefinitionsRule.js +3 -3
- package/validation/rules/ExecutableDefinitionsRule.js.flow +0 -1
- package/validation/rules/FieldsOnCorrectTypeRule.js +8 -6
- package/validation/rules/FieldsOnCorrectTypeRule.js.flow +2 -2
- package/validation/rules/FieldsOnCorrectTypeRule.mjs +2 -1
- package/validation/rules/FragmentsOnCompositeTypesRule.js +4 -4
- package/validation/rules/FragmentsOnCompositeTypesRule.js.flow +0 -1
- package/validation/rules/KnownArgumentNamesRule.js +5 -5
- package/validation/rules/KnownArgumentNamesRule.js.flow +1 -1
- package/validation/rules/KnownDirectivesRule.js +6 -6
- package/validation/rules/KnownDirectivesRule.js.flow +4 -3
- package/validation/rules/KnownFragmentNamesRule.js +1 -1
- package/validation/rules/KnownFragmentNamesRule.js.flow +0 -1
- package/validation/rules/KnownTypeNamesRule.js +6 -6
- package/validation/rules/KnownTypeNamesRule.js.flow +1 -2
- package/validation/rules/LoneAnonymousOperationRule.js +2 -2
- package/validation/rules/LoneAnonymousOperationRule.js.flow +0 -1
- package/validation/rules/LoneSchemaDefinition.js +1 -1
- package/validation/rules/LoneSchemaDefinition.js.flow +0 -1
- package/validation/rules/LoneSchemaDefinitionRule.js +1 -1
- package/validation/rules/LoneSchemaDefinitionRule.js.flow +0 -1
- package/validation/rules/NoFragmentCyclesRule.js +1 -1
- package/validation/rules/NoFragmentCyclesRule.js.flow +1 -2
- package/validation/rules/NoUndefinedVariablesRule.js +1 -1
- package/validation/rules/NoUndefinedVariablesRule.js.flow +0 -1
- package/validation/rules/NoUnusedFragmentsRule.js +1 -1
- package/validation/rules/NoUnusedFragmentsRule.js.flow +0 -1
- package/validation/rules/NoUnusedVariablesRule.js +1 -1
- package/validation/rules/NoUnusedVariablesRule.js.flow +0 -1
- package/validation/rules/OverlappingFieldsCanBeMergedRule.js +20 -20
- package/validation/rules/OverlappingFieldsCanBeMergedRule.js.flow +14 -14
- package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +12 -12
- package/validation/rules/PossibleFragmentSpreadsRule.js +5 -5
- package/validation/rules/PossibleFragmentSpreadsRule.js.flow +5 -2
- package/validation/rules/PossibleTypeExtensions.js +1 -1
- package/validation/rules/PossibleTypeExtensions.js.flow +0 -1
- package/validation/rules/PossibleTypeExtensionsRule.js +8 -8
- package/validation/rules/PossibleTypeExtensionsRule.js.flow +6 -4
- package/validation/rules/ProvidedRequiredArgumentsRule.js +7 -7
- package/validation/rules/ProvidedRequiredArgumentsRule.js.flow +4 -3
- package/validation/rules/ScalarLeafsRule.js +3 -3
- package/validation/rules/ScalarLeafsRule.js.flow +0 -1
- package/validation/rules/SingleFieldSubscriptionsRule.js +1 -1
- package/validation/rules/SingleFieldSubscriptionsRule.js.flow +0 -1
- package/validation/rules/UniqueArgumentNamesRule.js +1 -1
- package/validation/rules/UniqueArgumentNamesRule.js.flow +0 -1
- package/validation/rules/UniqueDirectiveNames.js +1 -1
- package/validation/rules/UniqueDirectiveNames.js.flow +0 -1
- package/validation/rules/UniqueDirectiveNamesRule.js +2 -2
- package/validation/rules/UniqueDirectiveNamesRule.js.flow +0 -1
- package/validation/rules/UniqueDirectiveNamesRule.mjs +1 -1
- package/validation/rules/UniqueDirectivesPerLocationRule.js +4 -4
- package/validation/rules/UniqueDirectivesPerLocationRule.js.flow +0 -1
- package/validation/rules/UniqueEnumValueNames.js +1 -1
- package/validation/rules/UniqueEnumValueNames.js.flow +0 -1
- package/validation/rules/UniqueEnumValueNamesRule.js +2 -2
- package/validation/rules/UniqueEnumValueNamesRule.js.flow +7 -2
- package/validation/rules/UniqueFieldDefinitionNames.js +1 -1
- package/validation/rules/UniqueFieldDefinitionNames.js.flow +0 -1
- package/validation/rules/UniqueFieldDefinitionNamesRule.js +3 -3
- package/validation/rules/UniqueFieldDefinitionNamesRule.js.flow +13 -4
- package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +1 -1
- package/validation/rules/UniqueFragmentNamesRule.js +1 -1
- package/validation/rules/UniqueFragmentNamesRule.js.flow +0 -1
- package/validation/rules/UniqueInputFieldNamesRule.js +1 -1
- package/validation/rules/UniqueInputFieldNamesRule.js.flow +0 -1
- package/validation/rules/UniqueOperationNamesRule.js +1 -1
- package/validation/rules/UniqueOperationNamesRule.js.flow +0 -1
- package/validation/rules/UniqueOperationTypes.js +1 -1
- package/validation/rules/UniqueOperationTypes.js.flow +0 -1
- package/validation/rules/UniqueOperationTypesRule.js +1 -1
- package/validation/rules/UniqueOperationTypesRule.js.flow +7 -2
- package/validation/rules/UniqueTypeNames.js +1 -1
- package/validation/rules/UniqueTypeNames.js.flow +0 -1
- package/validation/rules/UniqueTypeNamesRule.js +2 -2
- package/validation/rules/UniqueTypeNamesRule.js.flow +0 -1
- package/validation/rules/UniqueTypeNamesRule.mjs +1 -1
- package/validation/rules/UniqueVariableNamesRule.js +1 -1
- package/validation/rules/UniqueVariableNamesRule.js.flow +0 -1
- package/validation/rules/ValuesOfCorrectTypeRule.js +8 -8
- package/validation/rules/ValuesOfCorrectTypeRule.js.flow +0 -1
- package/validation/rules/VariablesAreInputTypesRule.js +4 -4
- package/validation/rules/VariablesAreInputTypesRule.js.flow +0 -1
- package/validation/rules/VariablesInAllowedPositionRule.js +6 -6
- package/validation/rules/VariablesInAllowedPositionRule.js.flow +0 -1
- package/validation/rules/custom/NoDeprecatedCustomRule.js +47 -9
- package/validation/rules/custom/NoDeprecatedCustomRule.js.flow +56 -13
- package/validation/rules/custom/NoDeprecatedCustomRule.mjs +43 -8
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +3 -3
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js.flow +0 -1
- package/validation/specifiedRules.js +33 -33
- package/validation/specifiedRules.js.flow +0 -1
- package/validation/validate.js +7 -7
- package/validation/validate.js.flow +4 -5
- package/version.js +2 -2
- package/version.js.flow +2 -3
- package/version.mjs +2 -2
- package/jsutils/isCollection.js +0 -47
- package/jsutils/isCollection.js.flow +0 -39
- package/jsutils/isCollection.mjs +0 -40
- package/polyfills/flatMap.js +0 -30
- package/polyfills/flatMap.js.flow +0 -28
- package/polyfills/flatMap.mjs +0 -23
package/execution/execute.js
CHANGED
|
@@ -9,51 +9,48 @@ exports.assertValidExecutionArguments = assertValidExecutionArguments;
|
|
|
9
9
|
exports.buildExecutionContext = buildExecutionContext;
|
|
10
10
|
exports.collectFields = collectFields;
|
|
11
11
|
exports.buildResolveInfo = buildResolveInfo;
|
|
12
|
-
exports.resolveFieldValueOrError = resolveFieldValueOrError;
|
|
13
12
|
exports.getFieldDef = getFieldDef;
|
|
14
13
|
exports.defaultFieldResolver = exports.defaultTypeResolver = void 0;
|
|
15
14
|
|
|
16
|
-
var
|
|
15
|
+
var _inspect = _interopRequireDefault(require("../jsutils/inspect.js"));
|
|
17
16
|
|
|
18
|
-
var
|
|
17
|
+
var _memoize = _interopRequireDefault(require("../jsutils/memoize3.js"));
|
|
19
18
|
|
|
20
|
-
var
|
|
19
|
+
var _invariant = _interopRequireDefault(require("../jsutils/invariant.js"));
|
|
21
20
|
|
|
22
|
-
var
|
|
21
|
+
var _devAssert = _interopRequireDefault(require("../jsutils/devAssert.js"));
|
|
23
22
|
|
|
24
|
-
var
|
|
23
|
+
var _isPromise = _interopRequireDefault(require("../jsutils/isPromise.js"));
|
|
25
24
|
|
|
26
|
-
var
|
|
25
|
+
var _isObjectLike = _interopRequireDefault(require("../jsutils/isObjectLike.js"));
|
|
27
26
|
|
|
28
|
-
var
|
|
27
|
+
var _safeArrayFrom = _interopRequireDefault(require("../jsutils/safeArrayFrom.js"));
|
|
29
28
|
|
|
30
|
-
var
|
|
29
|
+
var _promiseReduce = _interopRequireDefault(require("../jsutils/promiseReduce.js"));
|
|
31
30
|
|
|
32
|
-
var
|
|
31
|
+
var _promiseForObject = _interopRequireDefault(require("../jsutils/promiseForObject.js"));
|
|
33
32
|
|
|
34
|
-
var
|
|
33
|
+
var _Path = require("../jsutils/Path.js");
|
|
35
34
|
|
|
36
|
-
var
|
|
35
|
+
var _GraphQLError = require("../error/GraphQLError.js");
|
|
37
36
|
|
|
38
|
-
var
|
|
37
|
+
var _locatedError = require("../error/locatedError.js");
|
|
39
38
|
|
|
40
|
-
var
|
|
39
|
+
var _kinds = require("../language/kinds.js");
|
|
41
40
|
|
|
42
|
-
var
|
|
41
|
+
var _validate = require("../type/validate.js");
|
|
43
42
|
|
|
44
|
-
var
|
|
43
|
+
var _introspection = require("../type/introspection.js");
|
|
45
44
|
|
|
46
|
-
var
|
|
45
|
+
var _directives = require("../type/directives.js");
|
|
47
46
|
|
|
48
|
-
var
|
|
47
|
+
var _definition = require("../type/definition.js");
|
|
49
48
|
|
|
50
|
-
var
|
|
49
|
+
var _typeFromAST = require("../utilities/typeFromAST.js");
|
|
51
50
|
|
|
52
|
-
var
|
|
51
|
+
var _getOperationRootType = require("../utilities/getOperationRootType.js");
|
|
53
52
|
|
|
54
|
-
var
|
|
55
|
-
|
|
56
|
-
var _values = require("./values");
|
|
53
|
+
var _values = require("./values.js");
|
|
57
54
|
|
|
58
55
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
59
56
|
|
|
@@ -234,8 +231,6 @@ function executeOperation(exeContext, operation, rootValue) {
|
|
|
234
231
|
var path = undefined; // Errors from sub-fields of a NonNull type may propagate to the top level,
|
|
235
232
|
// at which point we still log the error and null the parent field, which
|
|
236
233
|
// in this case is the entire response.
|
|
237
|
-
//
|
|
238
|
-
// Similar to completeValueCatchingError.
|
|
239
234
|
|
|
240
235
|
try {
|
|
241
236
|
var result = operation.operation === 'mutation' ? executeFieldsSerially(exeContext, type, rootValue, path, fields) : executeFields(exeContext, type, rootValue, path, fields);
|
|
@@ -299,7 +294,7 @@ function executeFields(exeContext, parentType, sourceValue, path, fields) {
|
|
|
299
294
|
if (result !== undefined) {
|
|
300
295
|
results[responseName] = result;
|
|
301
296
|
|
|
302
|
-
if (
|
|
297
|
+
if ((0, _isPromise.default)(result)) {
|
|
303
298
|
containsPromise = true;
|
|
304
299
|
}
|
|
305
300
|
}
|
|
@@ -453,43 +448,10 @@ function resolveField(exeContext, parentType, source, fieldNodes, path) {
|
|
|
453
448
|
return;
|
|
454
449
|
}
|
|
455
450
|
|
|
451
|
+
var returnType = fieldDef.type;
|
|
456
452
|
var resolveFn = (_fieldDef$resolve = fieldDef.resolve) !== null && _fieldDef$resolve !== void 0 ? _fieldDef$resolve : exeContext.fieldResolver;
|
|
457
|
-
var info = buildResolveInfo(exeContext, fieldDef, fieldNodes, parentType, path); // Get the resolve function, regardless of if its result is normal
|
|
458
|
-
// or abrupt (error).
|
|
459
|
-
|
|
460
|
-
var result = resolveFieldValueOrError(exeContext, fieldDef, fieldNodes, resolveFn, source, info);
|
|
461
|
-
return completeValueCatchingError(exeContext, fieldDef.type, fieldNodes, info, path, result);
|
|
462
|
-
}
|
|
463
|
-
/**
|
|
464
|
-
* @internal
|
|
465
|
-
*/
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
function buildResolveInfo(exeContext, fieldDef, fieldNodes, parentType, path) {
|
|
469
|
-
// The resolve function's optional fourth argument is a collection of
|
|
470
|
-
// information about the current execution state.
|
|
471
|
-
return {
|
|
472
|
-
fieldName: fieldDef.name,
|
|
473
|
-
fieldNodes: fieldNodes,
|
|
474
|
-
returnType: fieldDef.type,
|
|
475
|
-
parentType: parentType,
|
|
476
|
-
path: path,
|
|
477
|
-
schema: exeContext.schema,
|
|
478
|
-
fragments: exeContext.fragments,
|
|
479
|
-
rootValue: exeContext.rootValue,
|
|
480
|
-
operation: exeContext.operation,
|
|
481
|
-
variableValues: exeContext.variableValues
|
|
482
|
-
};
|
|
483
|
-
}
|
|
484
|
-
/**
|
|
485
|
-
* Isolates the "ReturnOrAbrupt" behavior to not de-opt the `resolveField`
|
|
486
|
-
* function. Returns the result of resolveFn or the abrupt-return Error object.
|
|
487
|
-
*
|
|
488
|
-
* @internal
|
|
489
|
-
*/
|
|
490
|
-
|
|
453
|
+
var info = buildResolveInfo(exeContext, fieldDef, fieldNodes, parentType, path); // Get the resolve function, regardless of if its result is normal or abrupt (error).
|
|
491
454
|
|
|
492
|
-
function resolveFieldValueOrError(exeContext, fieldDef, fieldNodes, resolveFn, source, info) {
|
|
493
455
|
try {
|
|
494
456
|
// Build a JS object of arguments from the field.arguments AST, using the
|
|
495
457
|
// variables scope to fulfill any variable references.
|
|
@@ -500,26 +462,6 @@ function resolveFieldValueOrError(exeContext, fieldDef, fieldNodes, resolveFn, s
|
|
|
500
462
|
|
|
501
463
|
var _contextValue = exeContext.contextValue;
|
|
502
464
|
var result = resolveFn(source, args, _contextValue, info);
|
|
503
|
-
return (0, _isPromise.default)(result) ? result.then(undefined, asErrorInstance) : result;
|
|
504
|
-
} catch (error) {
|
|
505
|
-
return asErrorInstance(error);
|
|
506
|
-
}
|
|
507
|
-
} // Sometimes a non-error is thrown, wrap it as an Error instance to ensure a
|
|
508
|
-
// consistent Error interface.
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
function asErrorInstance(error) {
|
|
512
|
-
if (error instanceof Error) {
|
|
513
|
-
return error;
|
|
514
|
-
}
|
|
515
|
-
|
|
516
|
-
return new Error('Unexpected error value: ' + (0, _inspect.default)(error));
|
|
517
|
-
} // This is a small wrapper around completeValue which detects and logs errors
|
|
518
|
-
// in the execution context.
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
function completeValueCatchingError(exeContext, returnType, fieldNodes, info, path, result) {
|
|
522
|
-
try {
|
|
523
465
|
var completed;
|
|
524
466
|
|
|
525
467
|
if ((0, _isPromise.default)(result)) {
|
|
@@ -533,21 +475,43 @@ function completeValueCatchingError(exeContext, returnType, fieldNodes, info, pa
|
|
|
533
475
|
if ((0, _isPromise.default)(completed)) {
|
|
534
476
|
// Note: we don't rely on a `catch` method, but we do expect "thenable"
|
|
535
477
|
// to take a second callback for the error case.
|
|
536
|
-
return completed.then(undefined, function (
|
|
537
|
-
|
|
478
|
+
return completed.then(undefined, function (rawError) {
|
|
479
|
+
var error = (0, _locatedError.locatedError)(rawError, fieldNodes, (0, _Path.pathToArray)(path));
|
|
480
|
+
return handleFieldError(error, returnType, exeContext);
|
|
538
481
|
});
|
|
539
482
|
}
|
|
540
483
|
|
|
541
484
|
return completed;
|
|
542
|
-
} catch (
|
|
543
|
-
|
|
485
|
+
} catch (rawError) {
|
|
486
|
+
var error = (0, _locatedError.locatedError)(rawError, fieldNodes, (0, _Path.pathToArray)(path));
|
|
487
|
+
return handleFieldError(error, returnType, exeContext);
|
|
544
488
|
}
|
|
545
489
|
}
|
|
490
|
+
/**
|
|
491
|
+
* @internal
|
|
492
|
+
*/
|
|
546
493
|
|
|
547
|
-
function handleFieldError(rawError, fieldNodes, path, returnType, exeContext) {
|
|
548
|
-
var error = (0, _locatedError.locatedError)(asErrorInstance(rawError), fieldNodes, (0, _Path.pathToArray)(path)); // If the field type is non-nullable, then it is resolved without any
|
|
549
|
-
// protection from errors, however it still properly locates the error.
|
|
550
494
|
|
|
495
|
+
function buildResolveInfo(exeContext, fieldDef, fieldNodes, parentType, path) {
|
|
496
|
+
// The resolve function's optional fourth argument is a collection of
|
|
497
|
+
// information about the current execution state.
|
|
498
|
+
return {
|
|
499
|
+
fieldName: fieldDef.name,
|
|
500
|
+
fieldNodes: fieldNodes,
|
|
501
|
+
returnType: fieldDef.type,
|
|
502
|
+
parentType: parentType,
|
|
503
|
+
path: path,
|
|
504
|
+
schema: exeContext.schema,
|
|
505
|
+
fragments: exeContext.fragments,
|
|
506
|
+
rootValue: exeContext.rootValue,
|
|
507
|
+
operation: exeContext.operation,
|
|
508
|
+
variableValues: exeContext.variableValues
|
|
509
|
+
};
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
function handleFieldError(error, returnType, exeContext) {
|
|
513
|
+
// If the field type is non-nullable, then it is resolved without any
|
|
514
|
+
// protection from errors, however it still properly locates the error.
|
|
551
515
|
if ((0, _definition.isNonNullType)(returnType)) {
|
|
552
516
|
throw error;
|
|
553
517
|
} // Otherwise, error protection is applied, logging the error and resolving
|
|
@@ -636,26 +600,47 @@ function completeValue(exeContext, returnType, fieldNodes, info, path, result) {
|
|
|
636
600
|
|
|
637
601
|
|
|
638
602
|
function completeListValue(exeContext, returnType, fieldNodes, info, path, result) {
|
|
639
|
-
|
|
640
|
-
throw new _GraphQLError.GraphQLError("Expected Iterable, but did not find one for field \"".concat(info.parentType.name, ".").concat(info.fieldName, "\"."));
|
|
641
|
-
} // This is specified as a simple map, however we're optimizing the path
|
|
603
|
+
// This is specified as a simple map, however we're optimizing the path
|
|
642
604
|
// where the list contains no Promises by avoiding creating another Promise.
|
|
643
|
-
|
|
644
|
-
|
|
645
605
|
var itemType = returnType.ofType;
|
|
646
606
|
var containsPromise = false;
|
|
647
|
-
var completedResults = (0,
|
|
607
|
+
var completedResults = (0, _safeArrayFrom.default)(result, function (item, index) {
|
|
648
608
|
// No need to modify the info object containing the path,
|
|
649
609
|
// since from here on it is not ever accessed by resolver functions.
|
|
650
|
-
var
|
|
651
|
-
var completedItem = completeValueCatchingError(exeContext, itemType, fieldNodes, info, fieldPath, item);
|
|
610
|
+
var itemPath = (0, _Path.addPath)(path, index, undefined);
|
|
652
611
|
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
612
|
+
try {
|
|
613
|
+
var completedItem;
|
|
614
|
+
|
|
615
|
+
if ((0, _isPromise.default)(item)) {
|
|
616
|
+
completedItem = item.then(function (resolved) {
|
|
617
|
+
return completeValue(exeContext, itemType, fieldNodes, info, itemPath, resolved);
|
|
618
|
+
});
|
|
619
|
+
} else {
|
|
620
|
+
completedItem = completeValue(exeContext, itemType, fieldNodes, info, itemPath, item);
|
|
621
|
+
}
|
|
656
622
|
|
|
657
|
-
|
|
623
|
+
if ((0, _isPromise.default)(completedItem)) {
|
|
624
|
+
containsPromise = true; // Note: we don't rely on a `catch` method, but we do expect "thenable"
|
|
625
|
+
// to take a second callback for the error case.
|
|
626
|
+
|
|
627
|
+
return completedItem.then(undefined, function (rawError) {
|
|
628
|
+
var error = (0, _locatedError.locatedError)(rawError, fieldNodes, (0, _Path.pathToArray)(itemPath));
|
|
629
|
+
return handleFieldError(error, itemType, exeContext);
|
|
630
|
+
});
|
|
631
|
+
}
|
|
632
|
+
|
|
633
|
+
return completedItem;
|
|
634
|
+
} catch (rawError) {
|
|
635
|
+
var error = (0, _locatedError.locatedError)(rawError, fieldNodes, (0, _Path.pathToArray)(itemPath));
|
|
636
|
+
return handleFieldError(error, itemType, exeContext);
|
|
637
|
+
}
|
|
658
638
|
});
|
|
639
|
+
|
|
640
|
+
if (completedResults == null) {
|
|
641
|
+
throw new _GraphQLError.GraphQLError("Expected Iterable, but did not find one for field \"".concat(info.parentType.name, ".").concat(info.fieldName, "\"."));
|
|
642
|
+
}
|
|
643
|
+
|
|
659
644
|
return containsPromise ? Promise.all(completedResults) : completedResults;
|
|
660
645
|
}
|
|
661
646
|
/**
|
|
@@ -696,10 +681,25 @@ function completeAbstractValue(exeContext, returnType, fieldNodes, info, path, r
|
|
|
696
681
|
}
|
|
697
682
|
|
|
698
683
|
function ensureValidRuntimeType(runtimeTypeOrName, exeContext, returnType, fieldNodes, info, result) {
|
|
699
|
-
|
|
684
|
+
if (runtimeTypeOrName == null) {
|
|
685
|
+
throw new _GraphQLError.GraphQLError("Abstract type \"".concat(returnType.name, "\" must resolve to an Object type at runtime for field \"").concat(info.parentType.name, ".").concat(info.fieldName, "\". Either the \"").concat(returnType.name, "\" type should provide a \"resolveType\" function or each possible type should provide an \"isTypeOf\" function."), fieldNodes);
|
|
686
|
+
} // FIXME: temporary workaround until support for passing object types would be removed in v16.0.0
|
|
687
|
+
|
|
688
|
+
|
|
689
|
+
var runtimeTypeName = (0, _definition.isNamedType)(runtimeTypeOrName) ? runtimeTypeOrName.name : runtimeTypeOrName;
|
|
690
|
+
|
|
691
|
+
if (typeof runtimeTypeName !== 'string') {
|
|
692
|
+
throw new _GraphQLError.GraphQLError("Abstract type \"".concat(returnType.name, "\" must resolve to an Object type at runtime for field \"").concat(info.parentType.name, ".").concat(info.fieldName, "\" with ") + "value ".concat((0, _inspect.default)(result), ", received \"").concat((0, _inspect.default)(runtimeTypeOrName), "\"."));
|
|
693
|
+
}
|
|
694
|
+
|
|
695
|
+
var runtimeType = exeContext.schema.getType(runtimeTypeName);
|
|
696
|
+
|
|
697
|
+
if (runtimeType == null) {
|
|
698
|
+
throw new _GraphQLError.GraphQLError("Abstract type \"".concat(returnType.name, "\" was resolve to a type \"").concat(runtimeTypeName, "\" that does not exist inside schema."), fieldNodes);
|
|
699
|
+
}
|
|
700
700
|
|
|
701
701
|
if (!(0, _definition.isObjectType)(runtimeType)) {
|
|
702
|
-
throw new _GraphQLError.GraphQLError("Abstract type \"".concat(returnType.name, "\"
|
|
702
|
+
throw new _GraphQLError.GraphQLError("Abstract type \"".concat(returnType.name, "\" was resolve to a non-object type \"").concat(runtimeTypeName, "\"."), fieldNodes);
|
|
703
703
|
}
|
|
704
704
|
|
|
705
705
|
if (!exeContext.schema.isSubType(returnType, runtimeType)) {
|
|
@@ -801,7 +801,7 @@ var defaultTypeResolver = function defaultTypeResolver(value, contextValue, info
|
|
|
801
801
|
if ((0, _isPromise.default)(isTypeOfResult)) {
|
|
802
802
|
promisedIsTypeOfResults[i] = isTypeOfResult;
|
|
803
803
|
} else if (isTypeOfResult) {
|
|
804
|
-
return type;
|
|
804
|
+
return type.name;
|
|
805
805
|
}
|
|
806
806
|
}
|
|
807
807
|
}
|
|
@@ -810,7 +810,7 @@ var defaultTypeResolver = function defaultTypeResolver(value, contextValue, info
|
|
|
810
810
|
return Promise.all(promisedIsTypeOfResults).then(function (isTypeOfResults) {
|
|
811
811
|
for (var _i9 = 0; _i9 < isTypeOfResults.length; _i9++) {
|
|
812
812
|
if (isTypeOfResults[_i9]) {
|
|
813
|
-
return possibleTypes[_i9];
|
|
813
|
+
return possibleTypes[_i9].name;
|
|
814
814
|
}
|
|
815
815
|
}
|
|
816
816
|
});
|
|
@@ -840,12 +840,12 @@ var defaultFieldResolver = function defaultFieldResolver(source, args, contextVa
|
|
|
840
840
|
};
|
|
841
841
|
/**
|
|
842
842
|
* This method looks up the field on the given type definition.
|
|
843
|
-
* It has special casing for the
|
|
844
|
-
* and __typename. __typename is special because
|
|
845
|
-
* queried as a field, even in situations where no
|
|
846
|
-
* are allowed, like on a Union. __schema
|
|
847
|
-
* added to the query type, but that would
|
|
848
|
-
* definitions, which would cause issues.
|
|
843
|
+
* It has special casing for the three introspection fields,
|
|
844
|
+
* __schema, __type and __typename. __typename is special because
|
|
845
|
+
* it can always be queried as a field, even in situations where no
|
|
846
|
+
* other fields are allowed, like on a Union. __schema and __type
|
|
847
|
+
* could get automatically added to the query type, but that would
|
|
848
|
+
* require mutating type definitions, which would cause issues.
|
|
849
849
|
*
|
|
850
850
|
* @internal
|
|
851
851
|
*/
|