graphql 14.0.2 → 14.2.1
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 +5 -5
- package/codecov.yml +14 -0
- package/error/GraphQLError.js +2 -2
- package/error/GraphQLError.js.flow +4 -4
- package/error/GraphQLError.mjs +2 -2
- package/error/formatError.js +2 -2
- package/error/formatError.js.flow +1 -1
- package/error/formatError.mjs +2 -2
- package/error/index.js.flow +1 -1
- package/error/index.mjs +2 -2
- package/error/locatedError.js +2 -2
- package/error/locatedError.js.flow +1 -1
- package/error/locatedError.mjs +2 -2
- package/error/printError.js +2 -2
- package/error/printError.js.flow +1 -1
- package/error/printError.mjs +2 -2
- package/error/syntaxError.js +2 -2
- package/error/syntaxError.js.flow +1 -1
- package/error/syntaxError.mjs +2 -2
- package/execution/execute.js +20 -11
- package/execution/execute.js.flow +41 -27
- package/execution/execute.mjs +19 -13
- package/execution/index.js +6 -0
- package/execution/index.js.flow +7 -2
- package/execution/index.mjs +3 -3
- package/execution/values.js +10 -10
- package/execution/values.js.flow +8 -8
- package/execution/values.mjs +9 -9
- package/graphql.js +8 -8
- package/graphql.js.flow +18 -4
- package/graphql.mjs +8 -8
- package/index.js +18 -0
- package/index.js.flow +4 -1
- package/index.mjs +4 -4
- package/jsutils/ObjMap.js.flow +1 -1
- package/jsutils/{MaybePromise.js → PromiseOrValue.js} +0 -0
- package/jsutils/{MaybePromise.js.flow → PromiseOrValue.js.flow} +2 -2
- package/jsutils/{MaybePromise.mjs → PromiseOrValue.mjs} +0 -0
- package/jsutils/dedent.js +2 -2
- package/jsutils/dedent.js.flow +1 -1
- package/jsutils/dedent.mjs +2 -2
- package/jsutils/defineToJSON.js +18 -7
- package/jsutils/defineToJSON.js.flow +15 -6
- package/jsutils/defineToJSON.mjs +15 -7
- package/jsutils/defineToStringTag.js +6 -6
- package/jsutils/defineToStringTag.js.flow +4 -4
- package/jsutils/defineToStringTag.mjs +5 -5
- package/jsutils/inspect.js +109 -23
- package/jsutils/inspect.js.flow +112 -14
- package/jsutils/inspect.mjs +108 -17
- package/jsutils/instanceOf.js +2 -2
- package/jsutils/instanceOf.js.flow +1 -1
- package/jsutils/instanceOf.mjs +2 -2
- package/jsutils/invariant.js +2 -2
- package/jsutils/invariant.js.flow +1 -1
- package/jsutils/invariant.mjs +2 -2
- package/jsutils/isInvalid.js +2 -2
- package/jsutils/isInvalid.js.flow +1 -1
- package/jsutils/isInvalid.mjs +2 -2
- package/jsutils/isNullish.js +2 -2
- package/jsutils/isNullish.js.flow +1 -1
- package/jsutils/isNullish.mjs +2 -2
- package/jsutils/isPromise.js +2 -2
- package/jsutils/isPromise.js.flow +1 -1
- package/jsutils/isPromise.mjs +2 -2
- package/jsutils/keyMap.js +2 -2
- package/jsutils/keyMap.js.flow +1 -1
- package/jsutils/keyMap.mjs +2 -2
- package/jsutils/keyValMap.js +2 -2
- package/jsutils/keyValMap.js.flow +1 -1
- package/jsutils/keyValMap.mjs +2 -2
- package/jsutils/mapValue.js +54 -0
- package/jsutils/mapValue.js.flow +27 -0
- package/jsutils/mapValue.mjs +44 -0
- package/jsutils/memoize3.js +2 -2
- package/jsutils/memoize3.js.flow +1 -1
- package/jsutils/memoize3.mjs +2 -2
- package/jsutils/nodejsCustomInspectSymbol.js +18 -0
- package/jsutils/nodejsCustomInspectSymbol.js.flow +15 -0
- package/jsutils/nodejsCustomInspectSymbol.mjs +10 -0
- package/jsutils/orList.js +18 -5
- package/jsutils/orList.js.flow +14 -8
- package/jsutils/orList.mjs +15 -5
- package/jsutils/promiseForObject.js +2 -2
- package/jsutils/promiseForObject.js.flow +1 -1
- package/jsutils/promiseForObject.mjs +2 -2
- package/jsutils/promiseReduce.js +2 -2
- package/jsutils/promiseReduce.js.flow +5 -5
- package/jsutils/promiseReduce.mjs +2 -2
- package/jsutils/quotedOrList.js +2 -2
- package/jsutils/quotedOrList.js.flow +1 -1
- package/jsutils/quotedOrList.mjs +2 -2
- package/jsutils/suggestionList.js +2 -2
- package/jsutils/suggestionList.js.flow +1 -1
- package/jsutils/suggestionList.mjs +2 -2
- package/language/ast.js.flow +1 -1
- package/language/{blockStringValue.mjs → blockString.js} +39 -3
- package/language/{blockStringValue.js.flow → blockString.js.flow} +31 -2
- package/language/{blockStringValue.js → blockString.mjs} +31 -10
- package/language/directiveLocation.js +2 -2
- package/language/directiveLocation.js.flow +1 -1
- package/language/directiveLocation.mjs +2 -2
- package/language/index.js.flow +1 -1
- package/language/index.mjs +2 -2
- package/language/kinds.js +2 -2
- package/language/kinds.js.flow +1 -1
- package/language/kinds.mjs +2 -2
- package/language/lexer.js +60 -46
- package/language/lexer.js.flow +71 -69
- package/language/lexer.mjs +58 -45
- package/language/location.js +2 -2
- package/language/location.js.flow +1 -1
- package/language/location.mjs +2 -2
- package/language/parser.js +84 -83
- package/language/parser.js.flow +85 -94
- package/language/parser.mjs +83 -83
- package/language/predicates.js +2 -2
- package/language/predicates.js.flow +1 -1
- package/language/predicates.mjs +2 -2
- package/language/printer.js +15 -17
- package/language/printer.js.flow +21 -20
- package/language/printer.mjs +14 -17
- package/language/source.js +8 -7
- package/language/source.js.flow +1 -1
- package/language/source.mjs +2 -10
- package/language/visitor.js +7 -6
- package/language/visitor.js.flow +3 -5
- package/language/visitor.mjs +7 -6
- package/package.json +5 -2
- package/polyfills/find.js +31 -0
- package/polyfills/find.js.flow +29 -0
- package/polyfills/find.mjs +23 -0
- package/polyfills/flatMap.js +38 -0
- package/polyfills/flatMap.js.flow +34 -0
- package/polyfills/flatMap.mjs +30 -0
- package/{jsutils → polyfills}/isFinite.js +2 -2
- package/{jsutils → polyfills}/isFinite.js.flow +1 -1
- package/{jsutils → polyfills}/isFinite.mjs +2 -2
- package/{jsutils → polyfills}/isInteger.js +2 -2
- package/{jsutils → polyfills}/isInteger.js.flow +1 -1
- package/{jsutils → polyfills}/isInteger.mjs +2 -2
- package/polyfills/objectEntries.js +26 -0
- package/polyfills/objectEntries.js.flow +19 -0
- package/polyfills/objectEntries.mjs +18 -0
- package/{jsutils → polyfills}/objectValues.js +2 -2
- package/{jsutils → polyfills}/objectValues.js.flow +2 -2
- package/{jsutils → polyfills}/objectValues.mjs +2 -2
- package/subscription/asyncIteratorReject.js.flow +1 -1
- package/subscription/asyncIteratorReject.mjs +2 -2
- package/subscription/index.js.flow +1 -1
- package/subscription/index.mjs +2 -2
- package/subscription/mapAsyncIterator.js.flow +5 -5
- package/subscription/mapAsyncIterator.mjs +2 -2
- package/subscription/subscribe.js +2 -2
- package/subscription/subscribe.js.flow +1 -1
- package/subscription/subscribe.mjs +2 -2
- package/type/definition.js +161 -138
- package/type/definition.js.flow +193 -57
- package/type/definition.mjs +158 -140
- package/type/directives.js +35 -29
- package/type/directives.js.flow +39 -21
- package/type/directives.mjs +34 -31
- package/type/index.js +12 -0
- package/type/index.js.flow +5 -1
- package/type/index.mjs +6 -4
- package/type/introspection.js +11 -7
- package/type/introspection.js.flow +11 -8
- package/type/introspection.mjs +11 -7
- package/type/scalars.js +45 -34
- package/type/scalars.js.flow +41 -27
- package/type/scalars.mjs +45 -27
- package/type/schema.js +134 -88
- package/type/schema.js.flow +77 -11
- package/type/schema.mjs +132 -88
- package/type/validate.js +152 -187
- package/type/validate.js.flow +12 -61
- package/type/validate.mjs +143 -188
- package/utilities/TypeInfo.js +10 -23
- package/utilities/TypeInfo.js.flow +2 -2
- package/utilities/TypeInfo.mjs +3 -25
- package/utilities/assertValidName.js +2 -2
- package/utilities/assertValidName.js.flow +1 -1
- package/utilities/assertValidName.mjs +2 -2
- package/utilities/astFromValue.js +7 -6
- package/utilities/astFromValue.js.flow +7 -6
- package/utilities/astFromValue.mjs +9 -8
- package/utilities/buildASTSchema.js +213 -197
- package/utilities/buildASTSchema.js.flow +163 -173
- package/utilities/buildASTSchema.mjs +203 -198
- package/utilities/buildClientSchema.js +39 -47
- package/utilities/buildClientSchema.js.flow +49 -58
- package/utilities/buildClientSchema.mjs +38 -46
- package/utilities/coerceValue.js +41 -21
- package/utilities/coerceValue.js.flow +44 -49
- package/utilities/coerceValue.mjs +42 -23
- package/utilities/concatAST.js +9 -13
- package/utilities/concatAST.js.flow +3 -9
- package/utilities/concatAST.mjs +6 -13
- package/utilities/extendSchema.js +256 -630
- package/utilities/extendSchema.js.flow +190 -426
- package/utilities/extendSchema.mjs +256 -631
- package/utilities/findBreakingChanges.js +8 -6
- package/utilities/findBreakingChanges.js.flow +4 -3
- package/utilities/findBreakingChanges.mjs +7 -6
- package/utilities/findDeprecatedUsages.js +4 -4
- package/utilities/findDeprecatedUsages.js.flow +3 -3
- package/utilities/findDeprecatedUsages.mjs +4 -4
- package/utilities/getOperationAST.js +2 -2
- package/utilities/getOperationAST.js.flow +1 -1
- package/utilities/getOperationAST.mjs +2 -2
- package/utilities/getOperationRootType.js +6 -6
- package/utilities/getOperationRootType.js.flow +9 -7
- package/utilities/getOperationRootType.mjs +6 -6
- package/utilities/index.js.flow +1 -1
- package/utilities/index.mjs +2 -2
- package/utilities/introspectionFromSchema.js +2 -2
- package/utilities/introspectionFromSchema.js.flow +1 -1
- package/utilities/introspectionFromSchema.mjs +2 -2
- package/utilities/introspectionQuery.js +2 -2
- package/utilities/introspectionQuery.js.flow +1 -1
- package/utilities/introspectionQuery.mjs +2 -2
- package/utilities/isValidJSValue.js +4 -2
- package/utilities/isValidJSValue.js.flow +2 -1
- package/utilities/isValidJSValue.mjs +4 -2
- package/utilities/isValidLiteralValue.js +2 -2
- package/utilities/isValidLiteralValue.js.flow +1 -1
- package/utilities/isValidLiteralValue.mjs +2 -2
- package/utilities/lexicographicSortSchema.js +86 -124
- package/utilities/lexicographicSortSchema.js.flow +68 -96
- package/utilities/lexicographicSortSchema.mjs +86 -124
- package/utilities/schemaPrinter.js +47 -73
- package/utilities/schemaPrinter.js.flow +62 -111
- package/utilities/schemaPrinter.mjs +46 -73
- package/utilities/separateOperations.js +11 -10
- package/utilities/separateOperations.js.flow +1 -1
- package/utilities/separateOperations.mjs +11 -10
- package/utilities/typeComparators.js +2 -2
- package/utilities/typeComparators.js.flow +1 -1
- package/utilities/typeComparators.mjs +2 -2
- package/utilities/typeFromAST.js +9 -4
- package/utilities/typeFromAST.js.flow +5 -2
- package/utilities/typeFromAST.mjs +6 -4
- package/utilities/valueFromAST.js +9 -6
- package/utilities/valueFromAST.js.flow +5 -3
- package/utilities/valueFromAST.mjs +7 -5
- package/utilities/valueFromASTUntyped.js +7 -4
- package/utilities/valueFromASTUntyped.js.flow +5 -2
- package/utilities/valueFromASTUntyped.mjs +6 -4
- package/validation/ValidationContext.js +57 -82
- package/validation/ValidationContext.js.flow +53 -50
- package/validation/ValidationContext.mjs +53 -78
- package/validation/index.js.flow +1 -1
- package/validation/index.mjs +2 -2
- package/validation/rules/ExecutableDefinitions.js +3 -3
- package/validation/rules/ExecutableDefinitions.js.flow +3 -3
- package/validation/rules/ExecutableDefinitions.mjs +3 -3
- package/validation/rules/FieldsOnCorrectType.js +3 -3
- package/validation/rules/FieldsOnCorrectType.js.flow +2 -2
- package/validation/rules/FieldsOnCorrectType.mjs +3 -3
- package/validation/rules/FragmentsOnCompositeTypes.js +4 -4
- package/validation/rules/FragmentsOnCompositeTypes.js.flow +3 -3
- package/validation/rules/FragmentsOnCompositeTypes.mjs +4 -4
- package/validation/rules/KnownArgumentNames.js.flow +1 -1
- package/validation/rules/KnownArgumentNames.mjs +2 -2
- package/validation/rules/KnownDirectives.js +4 -4
- package/validation/rules/KnownDirectives.js.flow +5 -4
- package/validation/rules/KnownDirectives.mjs +4 -4
- package/validation/rules/KnownFragmentNames.js +3 -3
- package/validation/rules/KnownFragmentNames.js.flow +2 -2
- package/validation/rules/KnownFragmentNames.mjs +3 -3
- package/validation/rules/KnownTypeNames.js +60 -22
- package/validation/rules/KnownTypeNames.js.flow +55 -21
- package/validation/rules/KnownTypeNames.mjs +57 -22
- package/validation/rules/LoneAnonymousOperation.js +3 -3
- package/validation/rules/LoneAnonymousOperation.js.flow +2 -2
- package/validation/rules/LoneAnonymousOperation.mjs +3 -3
- package/validation/rules/LoneSchemaDefinition.js +2 -2
- package/validation/rules/LoneSchemaDefinition.js.flow +1 -1
- package/validation/rules/LoneSchemaDefinition.mjs +2 -2
- package/validation/rules/NoFragmentCycles.js +2 -2
- package/validation/rules/NoFragmentCycles.js.flow +3 -3
- package/validation/rules/NoFragmentCycles.mjs +2 -2
- package/validation/rules/NoUndefinedVariables.js +2 -2
- package/validation/rules/NoUndefinedVariables.js.flow +1 -1
- package/validation/rules/NoUndefinedVariables.mjs +2 -2
- package/validation/rules/NoUnusedFragments.js +10 -7
- package/validation/rules/NoUnusedFragments.js.flow +4 -4
- package/validation/rules/NoUnusedFragments.mjs +10 -7
- package/validation/rules/NoUnusedVariables.js +7 -5
- package/validation/rules/NoUnusedVariables.js.flow +4 -3
- package/validation/rules/NoUnusedVariables.mjs +7 -5
- package/validation/rules/OverlappingFieldsCanBeMerged.js +58 -33
- package/validation/rules/OverlappingFieldsCanBeMerged.js.flow +4 -4
- package/validation/rules/OverlappingFieldsCanBeMerged.mjs +50 -34
- package/validation/rules/PossibleFragmentSpreads.js +4 -4
- package/validation/rules/PossibleFragmentSpreads.js.flow +3 -3
- package/validation/rules/PossibleFragmentSpreads.mjs +4 -4
- package/validation/rules/PossibleTypeExtensions.js +158 -0
- package/validation/rules/PossibleTypeExtensions.js.flow +160 -0
- package/validation/rules/PossibleTypeExtensions.mjs +146 -0
- package/validation/rules/ProvidedRequiredArguments.js +3 -3
- package/validation/rules/ProvidedRequiredArguments.js.flow +4 -4
- package/validation/rules/ProvidedRequiredArguments.mjs +5 -5
- package/validation/rules/ScalarLeafs.js +4 -4
- package/validation/rules/ScalarLeafs.js.flow +3 -3
- package/validation/rules/ScalarLeafs.mjs +4 -4
- package/validation/rules/SingleFieldSubscriptions.js +2 -2
- package/validation/rules/SingleFieldSubscriptions.js.flow +1 -1
- package/validation/rules/SingleFieldSubscriptions.mjs +2 -2
- package/validation/rules/UniqueArgumentNames.js +2 -2
- package/validation/rules/UniqueArgumentNames.js.flow +1 -1
- package/validation/rules/UniqueArgumentNames.mjs +2 -2
- package/validation/rules/UniqueDirectiveNames.js +55 -0
- package/validation/rules/UniqueDirectiveNames.js.flow +64 -0
- package/validation/rules/UniqueDirectiveNames.mjs +43 -0
- package/validation/rules/UniqueDirectivesPerLocation.js +2 -2
- package/validation/rules/UniqueDirectivesPerLocation.js.flow +1 -1
- package/validation/rules/UniqueDirectivesPerLocation.mjs +2 -2
- package/validation/rules/UniqueEnumValueNames.js +90 -0
- package/validation/rules/UniqueEnumValueNames.js.flow +85 -0
- package/validation/rules/UniqueEnumValueNames.mjs +77 -0
- package/validation/rules/UniqueFieldDefinitionNames.js +101 -0
- package/validation/rules/UniqueFieldDefinitionNames.js.flow +99 -0
- package/validation/rules/UniqueFieldDefinitionNames.mjs +88 -0
- package/validation/rules/UniqueFragmentNames.js +2 -2
- package/validation/rules/UniqueFragmentNames.js.flow +1 -1
- package/validation/rules/UniqueFragmentNames.mjs +2 -2
- package/validation/rules/UniqueInputFieldNames.js +2 -4
- package/validation/rules/UniqueInputFieldNames.js.flow +1 -2
- package/validation/rules/UniqueInputFieldNames.mjs +2 -4
- package/validation/rules/UniqueOperationNames.js +2 -2
- package/validation/rules/UniqueOperationNames.js.flow +1 -1
- package/validation/rules/UniqueOperationNames.mjs +2 -2
- package/validation/rules/UniqueOperationTypes.js +85 -0
- package/validation/rules/UniqueOperationTypes.js.flow +76 -0
- package/validation/rules/UniqueOperationTypes.mjs +73 -0
- package/validation/rules/UniqueTypeNames.js +62 -0
- package/validation/rules/UniqueTypeNames.js.flow +67 -0
- package/validation/rules/UniqueTypeNames.mjs +50 -0
- package/validation/rules/UniqueVariableNames.js +2 -2
- package/validation/rules/UniqueVariableNames.js.flow +1 -1
- package/validation/rules/UniqueVariableNames.mjs +2 -2
- package/validation/rules/ValuesOfCorrectType.js +30 -14
- package/validation/rules/ValuesOfCorrectType.js.flow +5 -6
- package/validation/rules/ValuesOfCorrectType.mjs +29 -14
- package/validation/rules/VariablesAreInputTypes.js +3 -3
- package/validation/rules/VariablesAreInputTypes.js.flow +2 -2
- package/validation/rules/VariablesAreInputTypes.mjs +3 -3
- package/validation/rules/VariablesInAllowedPosition.js +5 -5
- package/validation/rules/VariablesInAllowedPosition.js.flow +1 -1
- package/validation/rules/VariablesInAllowedPosition.mjs +5 -5
- package/validation/specifiedRules.js +15 -3
- package/validation/specifiedRules.js.flow +14 -1
- package/validation/specifiedRules.mjs +9 -3
- package/validation/validate.js +2 -2
- package/validation/validate.js.flow +1 -1
- package/validation/validate.mjs +2 -2
- package/jsutils/find.js +0 -22
- package/jsutils/find.js.flow +0 -19
- package/jsutils/find.mjs +0 -15
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -49,7 +49,6 @@ export function UniqueInputFieldNames(
|
|
|
49
49
|
} else {
|
|
50
50
|
knownNames[fieldName] = node.name;
|
|
51
51
|
}
|
|
52
|
-
return false;
|
|
53
52
|
},
|
|
54
53
|
};
|
|
55
54
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
*
|
|
8
8
|
*/
|
|
9
9
|
import { GraphQLError } from '../../error/GraphQLError';
|
|
10
10
|
export function duplicateInputFieldMessage(fieldName) {
|
|
@@ -38,8 +38,6 @@ export function UniqueInputFieldNames(context) {
|
|
|
38
38
|
} else {
|
|
39
39
|
knownNames[fieldName] = node.name;
|
|
40
40
|
}
|
|
41
|
-
|
|
42
|
-
return false;
|
|
43
41
|
}
|
|
44
42
|
};
|
|
45
43
|
}
|
|
@@ -9,12 +9,12 @@ exports.UniqueOperationNames = UniqueOperationNames;
|
|
|
9
9
|
var _GraphQLError = require("../../error/GraphQLError");
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
* Copyright (c)
|
|
12
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
13
13
|
*
|
|
14
14
|
* This source code is licensed under the MIT license found in the
|
|
15
15
|
* LICENSE file in the root directory of this source tree.
|
|
16
16
|
*
|
|
17
|
-
*
|
|
17
|
+
*
|
|
18
18
|
*/
|
|
19
19
|
function duplicateOperationNameMessage(operationName) {
|
|
20
20
|
return "There can be only one operation named \"".concat(operationName, "\".");
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
*
|
|
8
8
|
*/
|
|
9
9
|
import { GraphQLError } from '../../error/GraphQLError';
|
|
10
10
|
export function duplicateOperationNameMessage(operationName) {
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.duplicateOperationTypeMessage = duplicateOperationTypeMessage;
|
|
7
|
+
exports.existedOperationTypeMessage = existedOperationTypeMessage;
|
|
8
|
+
exports.UniqueOperationTypes = UniqueOperationTypes;
|
|
9
|
+
|
|
10
|
+
var _GraphQLError = require("../../error/GraphQLError");
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
14
|
+
*
|
|
15
|
+
* This source code is licensed under the MIT license found in the
|
|
16
|
+
* LICENSE file in the root directory of this source tree.
|
|
17
|
+
*
|
|
18
|
+
*
|
|
19
|
+
*/
|
|
20
|
+
function duplicateOperationTypeMessage(operation) {
|
|
21
|
+
return "There can be only one ".concat(operation, " type in schema.");
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function existedOperationTypeMessage(operation) {
|
|
25
|
+
return "Type for ".concat(operation, " already defined in the schema. ") + 'It cannot be redefined.';
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Unique operation types
|
|
29
|
+
*
|
|
30
|
+
* A GraphQL document is only valid if it has only one type per operation.
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
function UniqueOperationTypes(context) {
|
|
35
|
+
var schema = context.getSchema();
|
|
36
|
+
var definedOperationTypes = Object.create(null);
|
|
37
|
+
var existingOperationTypes = schema ? {
|
|
38
|
+
query: schema.getQueryType(),
|
|
39
|
+
mutation: schema.getMutationType(),
|
|
40
|
+
subscription: schema.getSubscriptionType()
|
|
41
|
+
} : {};
|
|
42
|
+
return {
|
|
43
|
+
SchemaDefinition: checkOperationTypes,
|
|
44
|
+
SchemaExtension: checkOperationTypes
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
function checkOperationTypes(node) {
|
|
48
|
+
if (node.operationTypes) {
|
|
49
|
+
var _iteratorNormalCompletion = true;
|
|
50
|
+
var _didIteratorError = false;
|
|
51
|
+
var _iteratorError = undefined;
|
|
52
|
+
|
|
53
|
+
try {
|
|
54
|
+
for (var _iterator = (node.operationTypes || [])[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
55
|
+
var operationType = _step.value;
|
|
56
|
+
var operation = operationType.operation;
|
|
57
|
+
var alreadyDefinedOperationType = definedOperationTypes[operation];
|
|
58
|
+
|
|
59
|
+
if (existingOperationTypes[operation]) {
|
|
60
|
+
context.reportError(new _GraphQLError.GraphQLError(existedOperationTypeMessage(operation), operationType));
|
|
61
|
+
} else if (alreadyDefinedOperationType) {
|
|
62
|
+
context.reportError(new _GraphQLError.GraphQLError(duplicateOperationTypeMessage(operation), [alreadyDefinedOperationType, operationType]));
|
|
63
|
+
} else {
|
|
64
|
+
definedOperationTypes[operation] = operationType;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
} catch (err) {
|
|
68
|
+
_didIteratorError = true;
|
|
69
|
+
_iteratorError = err;
|
|
70
|
+
} finally {
|
|
71
|
+
try {
|
|
72
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
73
|
+
_iterator.return();
|
|
74
|
+
}
|
|
75
|
+
} finally {
|
|
76
|
+
if (_didIteratorError) {
|
|
77
|
+
throw _iteratorError;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow strict
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type { SDLValidationContext } from '../ValidationContext';
|
|
11
|
+
import { GraphQLError } from '../../error/GraphQLError';
|
|
12
|
+
import type { ASTVisitor } from '../../language/visitor';
|
|
13
|
+
|
|
14
|
+
export function duplicateOperationTypeMessage(operation: string): string {
|
|
15
|
+
return `There can be only one ${operation} type in schema.`;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export function existedOperationTypeMessage(operation: string): string {
|
|
19
|
+
return (
|
|
20
|
+
`Type for ${operation} already defined in the schema. ` +
|
|
21
|
+
'It cannot be redefined.'
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Unique operation types
|
|
27
|
+
*
|
|
28
|
+
* A GraphQL document is only valid if it has only one type per operation.
|
|
29
|
+
*/
|
|
30
|
+
export function UniqueOperationTypes(
|
|
31
|
+
context: SDLValidationContext,
|
|
32
|
+
): ASTVisitor {
|
|
33
|
+
const schema = context.getSchema();
|
|
34
|
+
const definedOperationTypes = Object.create(null);
|
|
35
|
+
const existingOperationTypes = schema
|
|
36
|
+
? {
|
|
37
|
+
query: schema.getQueryType(),
|
|
38
|
+
mutation: schema.getMutationType(),
|
|
39
|
+
subscription: schema.getSubscriptionType(),
|
|
40
|
+
}
|
|
41
|
+
: {};
|
|
42
|
+
|
|
43
|
+
return {
|
|
44
|
+
SchemaDefinition: checkOperationTypes,
|
|
45
|
+
SchemaExtension: checkOperationTypes,
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
function checkOperationTypes(node) {
|
|
49
|
+
if (node.operationTypes) {
|
|
50
|
+
for (const operationType of node.operationTypes || []) {
|
|
51
|
+
const operation = operationType.operation;
|
|
52
|
+
const alreadyDefinedOperationType = definedOperationTypes[operation];
|
|
53
|
+
|
|
54
|
+
if (existingOperationTypes[operation]) {
|
|
55
|
+
context.reportError(
|
|
56
|
+
new GraphQLError(
|
|
57
|
+
existedOperationTypeMessage(operation),
|
|
58
|
+
operationType,
|
|
59
|
+
),
|
|
60
|
+
);
|
|
61
|
+
} else if (alreadyDefinedOperationType) {
|
|
62
|
+
context.reportError(
|
|
63
|
+
new GraphQLError(duplicateOperationTypeMessage(operation), [
|
|
64
|
+
alreadyDefinedOperationType,
|
|
65
|
+
operationType,
|
|
66
|
+
]),
|
|
67
|
+
);
|
|
68
|
+
} else {
|
|
69
|
+
definedOperationTypes[operation] = operationType;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
*/
|
|
9
|
+
import { GraphQLError } from '../../error/GraphQLError';
|
|
10
|
+
export function duplicateOperationTypeMessage(operation) {
|
|
11
|
+
return "There can be only one ".concat(operation, " type in schema.");
|
|
12
|
+
}
|
|
13
|
+
export function existedOperationTypeMessage(operation) {
|
|
14
|
+
return "Type for ".concat(operation, " already defined in the schema. ") + 'It cannot be redefined.';
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Unique operation types
|
|
18
|
+
*
|
|
19
|
+
* A GraphQL document is only valid if it has only one type per operation.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
export function UniqueOperationTypes(context) {
|
|
23
|
+
var schema = context.getSchema();
|
|
24
|
+
var definedOperationTypes = Object.create(null);
|
|
25
|
+
var existingOperationTypes = schema ? {
|
|
26
|
+
query: schema.getQueryType(),
|
|
27
|
+
mutation: schema.getMutationType(),
|
|
28
|
+
subscription: schema.getSubscriptionType()
|
|
29
|
+
} : {};
|
|
30
|
+
return {
|
|
31
|
+
SchemaDefinition: checkOperationTypes,
|
|
32
|
+
SchemaExtension: checkOperationTypes
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
function checkOperationTypes(node) {
|
|
36
|
+
if (node.operationTypes) {
|
|
37
|
+
var _iteratorNormalCompletion = true;
|
|
38
|
+
var _didIteratorError = false;
|
|
39
|
+
var _iteratorError = undefined;
|
|
40
|
+
|
|
41
|
+
try {
|
|
42
|
+
for (var _iterator = (node.operationTypes || [])[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
43
|
+
var operationType = _step.value;
|
|
44
|
+
var operation = operationType.operation;
|
|
45
|
+
var alreadyDefinedOperationType = definedOperationTypes[operation];
|
|
46
|
+
|
|
47
|
+
if (existingOperationTypes[operation]) {
|
|
48
|
+
context.reportError(new GraphQLError(existedOperationTypeMessage(operation), operationType));
|
|
49
|
+
} else if (alreadyDefinedOperationType) {
|
|
50
|
+
context.reportError(new GraphQLError(duplicateOperationTypeMessage(operation), [alreadyDefinedOperationType, operationType]));
|
|
51
|
+
} else {
|
|
52
|
+
definedOperationTypes[operation] = operationType;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
} catch (err) {
|
|
56
|
+
_didIteratorError = true;
|
|
57
|
+
_iteratorError = err;
|
|
58
|
+
} finally {
|
|
59
|
+
try {
|
|
60
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
61
|
+
_iterator.return();
|
|
62
|
+
}
|
|
63
|
+
} finally {
|
|
64
|
+
if (_didIteratorError) {
|
|
65
|
+
throw _iteratorError;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.duplicateTypeNameMessage = duplicateTypeNameMessage;
|
|
7
|
+
exports.existedTypeNameMessage = existedTypeNameMessage;
|
|
8
|
+
exports.UniqueTypeNames = UniqueTypeNames;
|
|
9
|
+
|
|
10
|
+
var _GraphQLError = require("../../error/GraphQLError");
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
14
|
+
*
|
|
15
|
+
* This source code is licensed under the MIT license found in the
|
|
16
|
+
* LICENSE file in the root directory of this source tree.
|
|
17
|
+
*
|
|
18
|
+
*
|
|
19
|
+
*/
|
|
20
|
+
function duplicateTypeNameMessage(typeName) {
|
|
21
|
+
return "There can be only one type named \"".concat(typeName, "\".");
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function existedTypeNameMessage(typeName) {
|
|
25
|
+
return "Type \"".concat(typeName, "\" already exists in the schema. ") + 'It cannot also be defined in this type definition.';
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Unique type names
|
|
29
|
+
*
|
|
30
|
+
* A GraphQL document is only valid if all defined types have unique names.
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
function UniqueTypeNames(context) {
|
|
35
|
+
var knownTypeNames = Object.create(null);
|
|
36
|
+
var schema = context.getSchema();
|
|
37
|
+
return {
|
|
38
|
+
ScalarTypeDefinition: checkTypeName,
|
|
39
|
+
ObjectTypeDefinition: checkTypeName,
|
|
40
|
+
InterfaceTypeDefinition: checkTypeName,
|
|
41
|
+
UnionTypeDefinition: checkTypeName,
|
|
42
|
+
EnumTypeDefinition: checkTypeName,
|
|
43
|
+
InputObjectTypeDefinition: checkTypeName
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
function checkTypeName(node) {
|
|
47
|
+
var typeName = node.name.value;
|
|
48
|
+
|
|
49
|
+
if (schema && schema.getType(typeName)) {
|
|
50
|
+
context.reportError(new _GraphQLError.GraphQLError(existedTypeNameMessage(typeName), node.name));
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
if (knownTypeNames[typeName]) {
|
|
55
|
+
context.reportError(new _GraphQLError.GraphQLError(duplicateTypeNameMessage(typeName), [knownTypeNames[typeName], node.name]));
|
|
56
|
+
} else {
|
|
57
|
+
knownTypeNames[typeName] = node.name;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow strict
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type { SDLValidationContext } from '../ValidationContext';
|
|
11
|
+
import { GraphQLError } from '../../error/GraphQLError';
|
|
12
|
+
import type { ASTVisitor } from '../../language/visitor';
|
|
13
|
+
import type { TypeDefinitionNode } from '../../language/ast';
|
|
14
|
+
|
|
15
|
+
export function duplicateTypeNameMessage(typeName: string): string {
|
|
16
|
+
return `There can be only one type named "${typeName}".`;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function existedTypeNameMessage(typeName: string): string {
|
|
20
|
+
return (
|
|
21
|
+
`Type "${typeName}" already exists in the schema. ` +
|
|
22
|
+
'It cannot also be defined in this type definition.'
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Unique type names
|
|
28
|
+
*
|
|
29
|
+
* A GraphQL document is only valid if all defined types have unique names.
|
|
30
|
+
*/
|
|
31
|
+
export function UniqueTypeNames(context: SDLValidationContext): ASTVisitor {
|
|
32
|
+
const knownTypeNames = Object.create(null);
|
|
33
|
+
const schema = context.getSchema();
|
|
34
|
+
|
|
35
|
+
return {
|
|
36
|
+
ScalarTypeDefinition: checkTypeName,
|
|
37
|
+
ObjectTypeDefinition: checkTypeName,
|
|
38
|
+
InterfaceTypeDefinition: checkTypeName,
|
|
39
|
+
UnionTypeDefinition: checkTypeName,
|
|
40
|
+
EnumTypeDefinition: checkTypeName,
|
|
41
|
+
InputObjectTypeDefinition: checkTypeName,
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
function checkTypeName(node: TypeDefinitionNode) {
|
|
45
|
+
const typeName = node.name.value;
|
|
46
|
+
|
|
47
|
+
if (schema && schema.getType(typeName)) {
|
|
48
|
+
context.reportError(
|
|
49
|
+
new GraphQLError(existedTypeNameMessage(typeName), node.name),
|
|
50
|
+
);
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
if (knownTypeNames[typeName]) {
|
|
55
|
+
context.reportError(
|
|
56
|
+
new GraphQLError(duplicateTypeNameMessage(typeName), [
|
|
57
|
+
knownTypeNames[typeName],
|
|
58
|
+
node.name,
|
|
59
|
+
]),
|
|
60
|
+
);
|
|
61
|
+
} else {
|
|
62
|
+
knownTypeNames[typeName] = node.name;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
*/
|
|
9
|
+
import { GraphQLError } from '../../error/GraphQLError';
|
|
10
|
+
export function duplicateTypeNameMessage(typeName) {
|
|
11
|
+
return "There can be only one type named \"".concat(typeName, "\".");
|
|
12
|
+
}
|
|
13
|
+
export function existedTypeNameMessage(typeName) {
|
|
14
|
+
return "Type \"".concat(typeName, "\" already exists in the schema. ") + 'It cannot also be defined in this type definition.';
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Unique type names
|
|
18
|
+
*
|
|
19
|
+
* A GraphQL document is only valid if all defined types have unique names.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
export function UniqueTypeNames(context) {
|
|
23
|
+
var knownTypeNames = Object.create(null);
|
|
24
|
+
var schema = context.getSchema();
|
|
25
|
+
return {
|
|
26
|
+
ScalarTypeDefinition: checkTypeName,
|
|
27
|
+
ObjectTypeDefinition: checkTypeName,
|
|
28
|
+
InterfaceTypeDefinition: checkTypeName,
|
|
29
|
+
UnionTypeDefinition: checkTypeName,
|
|
30
|
+
EnumTypeDefinition: checkTypeName,
|
|
31
|
+
InputObjectTypeDefinition: checkTypeName
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
function checkTypeName(node) {
|
|
35
|
+
var typeName = node.name.value;
|
|
36
|
+
|
|
37
|
+
if (schema && schema.getType(typeName)) {
|
|
38
|
+
context.reportError(new GraphQLError(existedTypeNameMessage(typeName), node.name));
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if (knownTypeNames[typeName]) {
|
|
43
|
+
context.reportError(new GraphQLError(duplicateTypeNameMessage(typeName), [knownTypeNames[typeName], node.name]));
|
|
44
|
+
} else {
|
|
45
|
+
knownTypeNames[typeName] = node.name;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -9,12 +9,12 @@ exports.UniqueVariableNames = UniqueVariableNames;
|
|
|
9
9
|
var _GraphQLError = require("../../error/GraphQLError");
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
* Copyright (c)
|
|
12
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
13
13
|
*
|
|
14
14
|
* This source code is licensed under the MIT license found in the
|
|
15
15
|
* LICENSE file in the root directory of this source tree.
|
|
16
16
|
*
|
|
17
|
-
*
|
|
17
|
+
*
|
|
18
18
|
*/
|
|
19
19
|
function duplicateVariableMessage(variableName) {
|
|
20
20
|
return "There can be only one variable named \"".concat(variableName, "\".");
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
*
|
|
8
8
|
*/
|
|
9
9
|
import { GraphQLError } from '../../error/GraphQLError';
|
|
10
10
|
export function duplicateVariableMessage(variableName) {
|
|
@@ -8,6 +8,8 @@ exports.requiredFieldMessage = requiredFieldMessage;
|
|
|
8
8
|
exports.unknownFieldMessage = unknownFieldMessage;
|
|
9
9
|
exports.ValuesOfCorrectType = ValuesOfCorrectType;
|
|
10
10
|
|
|
11
|
+
var _objectValues = _interopRequireDefault(require("../../polyfills/objectValues"));
|
|
12
|
+
|
|
11
13
|
var _GraphQLError = require("../../error/GraphQLError");
|
|
12
14
|
|
|
13
15
|
var _printer = require("../../language/printer");
|
|
@@ -27,12 +29,12 @@ var _suggestionList = _interopRequireDefault(require("../../jsutils/suggestionLi
|
|
|
27
29
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
28
30
|
|
|
29
31
|
/**
|
|
30
|
-
* Copyright (c)
|
|
32
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
31
33
|
*
|
|
32
34
|
* This source code is licensed under the MIT license found in the
|
|
33
35
|
* LICENSE file in the root directory of this source tree.
|
|
34
36
|
*
|
|
35
|
-
*
|
|
37
|
+
*
|
|
36
38
|
*/
|
|
37
39
|
function badValueMessage(typeName, valueName, message) {
|
|
38
40
|
return "Expected type ".concat(typeName, ", found ").concat(valueName) + (message ? "; ".concat(message) : '.');
|
|
@@ -81,21 +83,35 @@ function ValuesOfCorrectType(context) {
|
|
|
81
83
|
} // Ensure every required field exists.
|
|
82
84
|
|
|
83
85
|
|
|
84
|
-
var inputFields = type.getFields();
|
|
85
86
|
var fieldNodeMap = (0, _keyMap.default)(node.fields, function (field) {
|
|
86
87
|
return field.name.value;
|
|
87
88
|
});
|
|
88
|
-
|
|
89
|
-
var
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
var
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
89
|
+
var _iteratorNormalCompletion = true;
|
|
90
|
+
var _didIteratorError = false;
|
|
91
|
+
var _iteratorError = undefined;
|
|
92
|
+
|
|
93
|
+
try {
|
|
94
|
+
for (var _iterator = (0, _objectValues.default)(type.getFields())[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
95
|
+
var fieldDef = _step.value;
|
|
96
|
+
var fieldNode = fieldNodeMap[fieldDef.name];
|
|
97
|
+
|
|
98
|
+
if (!fieldNode && (0, _definition.isRequiredInputField)(fieldDef)) {
|
|
99
|
+
var typeStr = (0, _inspect.default)(fieldDef.type);
|
|
100
|
+
context.reportError(new _GraphQLError.GraphQLError(requiredFieldMessage(type.name, fieldDef.name, typeStr), node));
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
} catch (err) {
|
|
104
|
+
_didIteratorError = true;
|
|
105
|
+
_iteratorError = err;
|
|
106
|
+
} finally {
|
|
107
|
+
try {
|
|
108
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
109
|
+
_iterator.return();
|
|
110
|
+
}
|
|
111
|
+
} finally {
|
|
112
|
+
if (_didIteratorError) {
|
|
113
|
+
throw _iteratorError;
|
|
114
|
+
}
|
|
99
115
|
}
|
|
100
116
|
}
|
|
101
117
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* @flow strict
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
+
import objectValues from '../../polyfills/objectValues';
|
|
10
11
|
import type { ValidationContext } from '../ValidationContext';
|
|
11
12
|
import { GraphQLError } from '../../error/GraphQLError';
|
|
12
13
|
import type { ValueNode } from '../../language/ast';
|
|
@@ -94,16 +95,14 @@ export function ValuesOfCorrectType(context: ValidationContext): ASTVisitor {
|
|
|
94
95
|
return false; // Don't traverse further.
|
|
95
96
|
}
|
|
96
97
|
// Ensure every required field exists.
|
|
97
|
-
const inputFields = type.getFields();
|
|
98
98
|
const fieldNodeMap = keyMap(node.fields, field => field.name.value);
|
|
99
|
-
for (const
|
|
100
|
-
const
|
|
101
|
-
const fieldNode = fieldNodeMap[fieldName];
|
|
99
|
+
for (const fieldDef of objectValues(type.getFields())) {
|
|
100
|
+
const fieldNode = fieldNodeMap[fieldDef.name];
|
|
102
101
|
if (!fieldNode && isRequiredInputField(fieldDef)) {
|
|
103
102
|
const typeStr = inspect(fieldDef.type);
|
|
104
103
|
context.reportError(
|
|
105
104
|
new GraphQLError(
|
|
106
|
-
requiredFieldMessage(type.name,
|
|
105
|
+
requiredFieldMessage(type.name, fieldDef.name, typeStr),
|
|
107
106
|
node,
|
|
108
107
|
),
|
|
109
108
|
);
|