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
|
@@ -12,15 +12,19 @@ var _suggestionList = _interopRequireDefault(require("../../jsutils/suggestionLi
|
|
|
12
12
|
|
|
13
13
|
var _quotedOrList = _interopRequireDefault(require("../../jsutils/quotedOrList"));
|
|
14
14
|
|
|
15
|
+
var _predicates = require("../../language/predicates");
|
|
16
|
+
|
|
17
|
+
var _scalars = require("../../type/scalars");
|
|
18
|
+
|
|
15
19
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
20
|
|
|
17
21
|
/**
|
|
18
|
-
* Copyright (c)
|
|
22
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
19
23
|
*
|
|
20
24
|
* This source code is licensed under the MIT license found in the
|
|
21
25
|
* LICENSE file in the root directory of this source tree.
|
|
22
26
|
*
|
|
23
|
-
*
|
|
27
|
+
*
|
|
24
28
|
*/
|
|
25
29
|
function unknownTypeMessage(typeName, suggestedTypes) {
|
|
26
30
|
var message = "Unknown type \"".concat(typeName, "\".");
|
|
@@ -40,30 +44,64 @@ function unknownTypeMessage(typeName, suggestedTypes) {
|
|
|
40
44
|
|
|
41
45
|
|
|
42
46
|
function KnownTypeNames(context) {
|
|
47
|
+
var schema = context.getSchema();
|
|
48
|
+
var existingTypesMap = schema ? schema.getTypeMap() : Object.create(null);
|
|
49
|
+
var definedTypes = Object.create(null);
|
|
50
|
+
var _iteratorNormalCompletion = true;
|
|
51
|
+
var _didIteratorError = false;
|
|
52
|
+
var _iteratorError = undefined;
|
|
53
|
+
|
|
54
|
+
try {
|
|
55
|
+
for (var _iterator = context.getDocument().definitions[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
56
|
+
var def = _step.value;
|
|
57
|
+
|
|
58
|
+
if ((0, _predicates.isTypeDefinitionNode)(def)) {
|
|
59
|
+
definedTypes[def.name.value] = true;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
} catch (err) {
|
|
63
|
+
_didIteratorError = true;
|
|
64
|
+
_iteratorError = err;
|
|
65
|
+
} finally {
|
|
66
|
+
try {
|
|
67
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
68
|
+
_iterator.return();
|
|
69
|
+
}
|
|
70
|
+
} finally {
|
|
71
|
+
if (_didIteratorError) {
|
|
72
|
+
throw _iteratorError;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
var typeNames = Object.keys(existingTypesMap).concat(Object.keys(definedTypes));
|
|
43
78
|
return {
|
|
44
|
-
|
|
45
|
-
// add unreferenced types, resulting in false-positive errors. Squelched
|
|
46
|
-
// errors for now.
|
|
47
|
-
ObjectTypeDefinition: function ObjectTypeDefinition() {
|
|
48
|
-
return false;
|
|
49
|
-
},
|
|
50
|
-
InterfaceTypeDefinition: function InterfaceTypeDefinition() {
|
|
51
|
-
return false;
|
|
52
|
-
},
|
|
53
|
-
UnionTypeDefinition: function UnionTypeDefinition() {
|
|
54
|
-
return false;
|
|
55
|
-
},
|
|
56
|
-
InputObjectTypeDefinition: function InputObjectTypeDefinition() {
|
|
57
|
-
return false;
|
|
58
|
-
},
|
|
59
|
-
NamedType: function NamedType(node) {
|
|
60
|
-
var schema = context.getSchema();
|
|
79
|
+
NamedType: function NamedType(node, _1, parent, _2, ancestors) {
|
|
61
80
|
var typeName = node.name.value;
|
|
62
|
-
var type = schema.getType(typeName);
|
|
63
81
|
|
|
64
|
-
if (!
|
|
65
|
-
|
|
82
|
+
if (!existingTypesMap[typeName] && !definedTypes[typeName]) {
|
|
83
|
+
var definitionNode = ancestors[2] || parent;
|
|
84
|
+
var isSDL = isSDLNode(definitionNode);
|
|
85
|
+
|
|
86
|
+
if (isSDL && isSpecifiedScalarName(typeName)) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
var suggestedTypes = (0, _suggestionList.default)(typeName, isSDL ? specifiedScalarsNames.concat(typeNames) : typeNames);
|
|
91
|
+
context.reportError(new _GraphQLError.GraphQLError(unknownTypeMessage(typeName, suggestedTypes), node));
|
|
66
92
|
}
|
|
67
93
|
}
|
|
68
94
|
};
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
var specifiedScalarsNames = _scalars.specifiedScalarTypes.map(function (type) {
|
|
98
|
+
return type.name;
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
function isSpecifiedScalarName(typeName) {
|
|
102
|
+
return specifiedScalarsNames.indexOf(typeName) !== -1;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
function isSDLNode(value) {
|
|
106
|
+
return Boolean(value && !Array.isArray(value) && ((0, _predicates.isTypeSystemDefinitionNode)(value) || (0, _predicates.isTypeSystemExtensionNode)(value)));
|
|
69
107
|
}
|
|
@@ -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,11 +7,21 @@
|
|
|
7
7
|
* @flow strict
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import type {
|
|
10
|
+
import type {
|
|
11
|
+
ValidationContext,
|
|
12
|
+
SDLValidationContext,
|
|
13
|
+
} from '../ValidationContext';
|
|
11
14
|
import { GraphQLError } from '../../error/GraphQLError';
|
|
12
15
|
import suggestionList from '../../jsutils/suggestionList';
|
|
13
16
|
import quotedOrList from '../../jsutils/quotedOrList';
|
|
17
|
+
import type { ASTNode } from '../../language/ast';
|
|
14
18
|
import type { ASTVisitor } from '../../language/visitor';
|
|
19
|
+
import {
|
|
20
|
+
isTypeDefinitionNode,
|
|
21
|
+
isTypeSystemDefinitionNode,
|
|
22
|
+
isTypeSystemExtensionNode,
|
|
23
|
+
} from '../../language/predicates';
|
|
24
|
+
import { specifiedScalarTypes } from '../../type/scalars';
|
|
15
25
|
|
|
16
26
|
export function unknownTypeMessage(
|
|
17
27
|
typeName: string,
|
|
@@ -30,30 +40,54 @@ export function unknownTypeMessage(
|
|
|
30
40
|
* A GraphQL document is only valid if referenced types (specifically
|
|
31
41
|
* variable definitions and fragment conditions) are defined by the type schema.
|
|
32
42
|
*/
|
|
33
|
-
export function KnownTypeNames(
|
|
43
|
+
export function KnownTypeNames(
|
|
44
|
+
context: ValidationContext | SDLValidationContext,
|
|
45
|
+
): ASTVisitor {
|
|
46
|
+
const schema = context.getSchema();
|
|
47
|
+
const existingTypesMap = schema ? schema.getTypeMap() : Object.create(null);
|
|
48
|
+
|
|
49
|
+
const definedTypes = Object.create(null);
|
|
50
|
+
for (const def of context.getDocument().definitions) {
|
|
51
|
+
if (isTypeDefinitionNode(def)) {
|
|
52
|
+
definedTypes[def.name.value] = true;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const typeNames = Object.keys(existingTypesMap).concat(
|
|
57
|
+
Object.keys(definedTypes),
|
|
58
|
+
);
|
|
59
|
+
|
|
34
60
|
return {
|
|
35
|
-
|
|
36
|
-
// add unreferenced types, resulting in false-positive errors. Squelched
|
|
37
|
-
// errors for now.
|
|
38
|
-
ObjectTypeDefinition: () => false,
|
|
39
|
-
InterfaceTypeDefinition: () => false,
|
|
40
|
-
UnionTypeDefinition: () => false,
|
|
41
|
-
InputObjectTypeDefinition: () => false,
|
|
42
|
-
NamedType(node) {
|
|
43
|
-
const schema = context.getSchema();
|
|
61
|
+
NamedType(node, _1, parent, _2, ancestors) {
|
|
44
62
|
const typeName = node.name.value;
|
|
45
|
-
|
|
46
|
-
|
|
63
|
+
if (!existingTypesMap[typeName] && !definedTypes[typeName]) {
|
|
64
|
+
const definitionNode = ancestors[2] || parent;
|
|
65
|
+
const isSDL = isSDLNode(definitionNode);
|
|
66
|
+
if (isSDL && isSpecifiedScalarName(typeName)) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
const suggestedTypes = suggestionList(
|
|
71
|
+
typeName,
|
|
72
|
+
isSDL ? specifiedScalarsNames.concat(typeNames) : typeNames,
|
|
73
|
+
);
|
|
47
74
|
context.reportError(
|
|
48
|
-
new GraphQLError(
|
|
49
|
-
unknownTypeMessage(
|
|
50
|
-
typeName,
|
|
51
|
-
suggestionList(typeName, Object.keys(schema.getTypeMap())),
|
|
52
|
-
),
|
|
53
|
-
[node],
|
|
54
|
-
),
|
|
75
|
+
new GraphQLError(unknownTypeMessage(typeName, suggestedTypes), node),
|
|
55
76
|
);
|
|
56
77
|
}
|
|
57
78
|
},
|
|
58
79
|
};
|
|
59
80
|
}
|
|
81
|
+
|
|
82
|
+
const specifiedScalarsNames = specifiedScalarTypes.map(type => type.name);
|
|
83
|
+
function isSpecifiedScalarName(typeName) {
|
|
84
|
+
return specifiedScalarsNames.indexOf(typeName) !== -1;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function isSDLNode(value: ASTNode | $ReadOnlyArray<ASTNode> | void): boolean {
|
|
88
|
+
return Boolean(
|
|
89
|
+
value &&
|
|
90
|
+
!Array.isArray(value) &&
|
|
91
|
+
(isTypeSystemDefinitionNode(value) || isTypeSystemExtensionNode(value)),
|
|
92
|
+
);
|
|
93
|
+
}
|
|
@@ -1,14 +1,16 @@
|
|
|
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
|
import suggestionList from '../../jsutils/suggestionList';
|
|
11
11
|
import quotedOrList from '../../jsutils/quotedOrList';
|
|
12
|
+
import { isTypeDefinitionNode, isTypeSystemDefinitionNode, isTypeSystemExtensionNode } from '../../language/predicates';
|
|
13
|
+
import { specifiedScalarTypes } from '../../type/scalars';
|
|
12
14
|
export function unknownTypeMessage(typeName, suggestedTypes) {
|
|
13
15
|
var message = "Unknown type \"".concat(typeName, "\".");
|
|
14
16
|
|
|
@@ -26,30 +28,63 @@ export function unknownTypeMessage(typeName, suggestedTypes) {
|
|
|
26
28
|
*/
|
|
27
29
|
|
|
28
30
|
export function KnownTypeNames(context) {
|
|
31
|
+
var schema = context.getSchema();
|
|
32
|
+
var existingTypesMap = schema ? schema.getTypeMap() : Object.create(null);
|
|
33
|
+
var definedTypes = Object.create(null);
|
|
34
|
+
var _iteratorNormalCompletion = true;
|
|
35
|
+
var _didIteratorError = false;
|
|
36
|
+
var _iteratorError = undefined;
|
|
37
|
+
|
|
38
|
+
try {
|
|
39
|
+
for (var _iterator = context.getDocument().definitions[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
40
|
+
var def = _step.value;
|
|
41
|
+
|
|
42
|
+
if (isTypeDefinitionNode(def)) {
|
|
43
|
+
definedTypes[def.name.value] = true;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
} catch (err) {
|
|
47
|
+
_didIteratorError = true;
|
|
48
|
+
_iteratorError = err;
|
|
49
|
+
} finally {
|
|
50
|
+
try {
|
|
51
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
52
|
+
_iterator.return();
|
|
53
|
+
}
|
|
54
|
+
} finally {
|
|
55
|
+
if (_didIteratorError) {
|
|
56
|
+
throw _iteratorError;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
var typeNames = Object.keys(existingTypesMap).concat(Object.keys(definedTypes));
|
|
29
62
|
return {
|
|
30
|
-
|
|
31
|
-
// add unreferenced types, resulting in false-positive errors. Squelched
|
|
32
|
-
// errors for now.
|
|
33
|
-
ObjectTypeDefinition: function ObjectTypeDefinition() {
|
|
34
|
-
return false;
|
|
35
|
-
},
|
|
36
|
-
InterfaceTypeDefinition: function InterfaceTypeDefinition() {
|
|
37
|
-
return false;
|
|
38
|
-
},
|
|
39
|
-
UnionTypeDefinition: function UnionTypeDefinition() {
|
|
40
|
-
return false;
|
|
41
|
-
},
|
|
42
|
-
InputObjectTypeDefinition: function InputObjectTypeDefinition() {
|
|
43
|
-
return false;
|
|
44
|
-
},
|
|
45
|
-
NamedType: function NamedType(node) {
|
|
46
|
-
var schema = context.getSchema();
|
|
63
|
+
NamedType: function NamedType(node, _1, parent, _2, ancestors) {
|
|
47
64
|
var typeName = node.name.value;
|
|
48
|
-
var type = schema.getType(typeName);
|
|
49
65
|
|
|
50
|
-
if (!
|
|
51
|
-
|
|
66
|
+
if (!existingTypesMap[typeName] && !definedTypes[typeName]) {
|
|
67
|
+
var definitionNode = ancestors[2] || parent;
|
|
68
|
+
var isSDL = isSDLNode(definitionNode);
|
|
69
|
+
|
|
70
|
+
if (isSDL && isSpecifiedScalarName(typeName)) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
var suggestedTypes = suggestionList(typeName, isSDL ? specifiedScalarsNames.concat(typeNames) : typeNames);
|
|
75
|
+
context.reportError(new GraphQLError(unknownTypeMessage(typeName, suggestedTypes), node));
|
|
52
76
|
}
|
|
53
77
|
}
|
|
54
78
|
};
|
|
79
|
+
}
|
|
80
|
+
var specifiedScalarsNames = specifiedScalarTypes.map(function (type) {
|
|
81
|
+
return type.name;
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
function isSpecifiedScalarName(typeName) {
|
|
85
|
+
return specifiedScalarsNames.indexOf(typeName) !== -1;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function isSDLNode(value) {
|
|
89
|
+
return Boolean(value && !Array.isArray(value) && (isTypeSystemDefinitionNode(value) || isTypeSystemExtensionNode(value)));
|
|
55
90
|
}
|
|
@@ -11,12 +11,12 @@ var _GraphQLError = require("../../error/GraphQLError");
|
|
|
11
11
|
var _kinds = require("../../language/kinds");
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
|
-
* Copyright (c)
|
|
14
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
15
15
|
*
|
|
16
16
|
* This source code is licensed under the MIT license found in the
|
|
17
17
|
* LICENSE file in the root directory of this source tree.
|
|
18
18
|
*
|
|
19
|
-
*
|
|
19
|
+
*
|
|
20
20
|
*/
|
|
21
21
|
function anonOperationNotAloneMessage() {
|
|
22
22
|
return 'This anonymous operation must be the only defined operation.';
|
|
@@ -39,7 +39,7 @@ function LoneAnonymousOperation(context) {
|
|
|
39
39
|
},
|
|
40
40
|
OperationDefinition: function OperationDefinition(node) {
|
|
41
41
|
if (!node.name && operationCount > 1) {
|
|
42
|
-
context.reportError(new _GraphQLError.GraphQLError(anonOperationNotAloneMessage(),
|
|
42
|
+
context.reportError(new _GraphQLError.GraphQLError(anonOperationNotAloneMessage(), node));
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
};
|
|
@@ -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.
|
|
@@ -35,7 +35,7 @@ export function LoneAnonymousOperation(
|
|
|
35
35
|
OperationDefinition(node) {
|
|
36
36
|
if (!node.name && operationCount > 1) {
|
|
37
37
|
context.reportError(
|
|
38
|
-
new GraphQLError(anonOperationNotAloneMessage(),
|
|
38
|
+
new GraphQLError(anonOperationNotAloneMessage(), node),
|
|
39
39
|
);
|
|
40
40
|
}
|
|
41
41
|
},
|
|
@@ -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
|
import { Kind } from '../../language/kinds';
|
|
@@ -28,7 +28,7 @@ export function LoneAnonymousOperation(context) {
|
|
|
28
28
|
},
|
|
29
29
|
OperationDefinition: function OperationDefinition(node) {
|
|
30
30
|
if (!node.name && operationCount > 1) {
|
|
31
|
-
context.reportError(new GraphQLError(anonOperationNotAloneMessage(),
|
|
31
|
+
context.reportError(new GraphQLError(anonOperationNotAloneMessage(), node));
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
};
|
|
@@ -10,12 +10,12 @@ exports.LoneSchemaDefinition = LoneSchemaDefinition;
|
|
|
10
10
|
var _GraphQLError = require("../../error/GraphQLError");
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
|
-
* Copyright (c)
|
|
13
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
14
14
|
*
|
|
15
15
|
* This source code is licensed under the MIT license found in the
|
|
16
16
|
* LICENSE file in the root directory of this source tree.
|
|
17
17
|
*
|
|
18
|
-
*
|
|
18
|
+
*
|
|
19
19
|
*/
|
|
20
20
|
function schemaDefinitionNotAloneMessage() {
|
|
21
21
|
return 'Must provide only one schema definition.';
|
|
@@ -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 schemaDefinitionNotAloneMessage() {
|
|
@@ -9,12 +9,12 @@ exports.NoFragmentCycles = NoFragmentCycles;
|
|
|
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 cycleErrorMessage(fragName, spreadNames) {
|
|
20
20
|
var via = spreadNames.length ? ' via ' + spreadNames.join(', ') : '';
|
|
@@ -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,7 +7,7 @@
|
|
|
7
7
|
* @flow strict
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import type {
|
|
10
|
+
import type { ASTValidationContext } from '../ValidationContext';
|
|
11
11
|
import { GraphQLError } from '../../error/GraphQLError';
|
|
12
12
|
import type { FragmentDefinitionNode } from '../../language/ast';
|
|
13
13
|
import type { ASTVisitor } from '../../language/visitor';
|
|
@@ -20,7 +20,7 @@ export function cycleErrorMessage(
|
|
|
20
20
|
return `Cannot spread fragment "${fragName}" within itself${via}.`;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
export function NoFragmentCycles(context:
|
|
23
|
+
export function NoFragmentCycles(context: ASTValidationContext): ASTVisitor {
|
|
24
24
|
// Tracks already visited fragments to maintain O(N) and to ensure that cycles
|
|
25
25
|
// are not redundantly reported.
|
|
26
26
|
const visitedFrags = Object.create(null);
|
|
@@ -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 cycleErrorMessage(fragName, spreadNames) {
|
|
@@ -9,12 +9,12 @@ exports.NoUndefinedVariables = NoUndefinedVariables;
|
|
|
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 undefinedVarMessage(varName, opName) {
|
|
20
20
|
return opName ? "Variable \"$".concat(varName, "\" is not defined by operation \"").concat(opName, "\".") : "Variable \"$".concat(varName, "\" is not defined.");
|
|
@@ -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 undefinedVarMessage(varName, opName) {
|
|
@@ -9,12 +9,12 @@ exports.NoUnusedFragments = NoUnusedFragments;
|
|
|
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 unusedFragMessage(fragName) {
|
|
20
20
|
return "Fragment \"".concat(fragName, "\" is never used.");
|
|
@@ -42,9 +42,10 @@ function NoUnusedFragments(context) {
|
|
|
42
42
|
Document: {
|
|
43
43
|
leave: function leave() {
|
|
44
44
|
var fragmentNameUsed = Object.create(null);
|
|
45
|
+
var _arr = operationDefs;
|
|
45
46
|
|
|
46
|
-
for (var _i = 0; _i <
|
|
47
|
-
var operation =
|
|
47
|
+
for (var _i = 0; _i < _arr.length; _i++) {
|
|
48
|
+
var operation = _arr[_i];
|
|
48
49
|
var _iteratorNormalCompletion = true;
|
|
49
50
|
var _didIteratorError = false;
|
|
50
51
|
var _iteratorError = undefined;
|
|
@@ -70,12 +71,14 @@ function NoUnusedFragments(context) {
|
|
|
70
71
|
}
|
|
71
72
|
}
|
|
72
73
|
|
|
73
|
-
|
|
74
|
-
|
|
74
|
+
var _arr2 = fragmentDefs;
|
|
75
|
+
|
|
76
|
+
for (var _i2 = 0; _i2 < _arr2.length; _i2++) {
|
|
77
|
+
var fragmentDef = _arr2[_i2];
|
|
75
78
|
var fragName = fragmentDef.name.value;
|
|
76
79
|
|
|
77
80
|
if (fragmentNameUsed[fragName] !== true) {
|
|
78
|
-
context.reportError(new _GraphQLError.GraphQLError(unusedFragMessage(fragName),
|
|
81
|
+
context.reportError(new _GraphQLError.GraphQLError(unusedFragMessage(fragName), fragmentDef));
|
|
79
82
|
}
|
|
80
83
|
}
|
|
81
84
|
}
|
|
@@ -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,7 +7,7 @@
|
|
|
7
7
|
* @flow strict
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import type {
|
|
10
|
+
import type { ASTValidationContext } from '../ValidationContext';
|
|
11
11
|
import { GraphQLError } from '../../error/GraphQLError';
|
|
12
12
|
import type { ASTVisitor } from '../../language/visitor';
|
|
13
13
|
|
|
@@ -21,7 +21,7 @@ export function unusedFragMessage(fragName: string): string {
|
|
|
21
21
|
* A GraphQL document is only valid if all fragment definitions are spread
|
|
22
22
|
* within operations, or spread within other fragments spread within operations.
|
|
23
23
|
*/
|
|
24
|
-
export function NoUnusedFragments(context:
|
|
24
|
+
export function NoUnusedFragments(context: ASTValidationContext): ASTVisitor {
|
|
25
25
|
const operationDefs = [];
|
|
26
26
|
const fragmentDefs = [];
|
|
27
27
|
|
|
@@ -49,7 +49,7 @@ export function NoUnusedFragments(context: ValidationContext): ASTVisitor {
|
|
|
49
49
|
const fragName = fragmentDef.name.value;
|
|
50
50
|
if (fragmentNameUsed[fragName] !== true) {
|
|
51
51
|
context.reportError(
|
|
52
|
-
new GraphQLError(unusedFragMessage(fragName),
|
|
52
|
+
new GraphQLError(unusedFragMessage(fragName), fragmentDef),
|
|
53
53
|
);
|
|
54
54
|
}
|
|
55
55
|
}
|
|
@@ -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 unusedFragMessage(fragName) {
|
|
@@ -32,9 +32,10 @@ export function NoUnusedFragments(context) {
|
|
|
32
32
|
Document: {
|
|
33
33
|
leave: function leave() {
|
|
34
34
|
var fragmentNameUsed = Object.create(null);
|
|
35
|
+
var _arr = operationDefs;
|
|
35
36
|
|
|
36
|
-
for (var _i = 0; _i <
|
|
37
|
-
var operation =
|
|
37
|
+
for (var _i = 0; _i < _arr.length; _i++) {
|
|
38
|
+
var operation = _arr[_i];
|
|
38
39
|
var _iteratorNormalCompletion = true;
|
|
39
40
|
var _didIteratorError = false;
|
|
40
41
|
var _iteratorError = undefined;
|
|
@@ -60,12 +61,14 @@ export function NoUnusedFragments(context) {
|
|
|
60
61
|
}
|
|
61
62
|
}
|
|
62
63
|
|
|
63
|
-
|
|
64
|
-
|
|
64
|
+
var _arr2 = fragmentDefs;
|
|
65
|
+
|
|
66
|
+
for (var _i2 = 0; _i2 < _arr2.length; _i2++) {
|
|
67
|
+
var fragmentDef = _arr2[_i2];
|
|
65
68
|
var fragName = fragmentDef.name.value;
|
|
66
69
|
|
|
67
70
|
if (fragmentNameUsed[fragName] !== true) {
|
|
68
|
-
context.reportError(new GraphQLError(unusedFragMessage(fragName),
|
|
71
|
+
context.reportError(new GraphQLError(unusedFragMessage(fragName), fragmentDef));
|
|
69
72
|
}
|
|
70
73
|
}
|
|
71
74
|
}
|
|
@@ -9,12 +9,12 @@ exports.NoUnusedVariables = NoUnusedVariables;
|
|
|
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 unusedVariableMessage(varName, opName) {
|
|
20
20
|
return opName ? "Variable \"$".concat(varName, "\" is never used in operation \"").concat(opName, "\".") : "Variable \"$".concat(varName, "\" is never used.");
|
|
@@ -63,12 +63,14 @@ function NoUnusedVariables(context) {
|
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
var _arr = variableDefs;
|
|
67
|
+
|
|
68
|
+
for (var _i = 0; _i < _arr.length; _i++) {
|
|
69
|
+
var variableDef = _arr[_i];
|
|
68
70
|
var variableName = variableDef.variable.name.value;
|
|
69
71
|
|
|
70
72
|
if (variableNameUsed[variableName] !== true) {
|
|
71
|
-
context.reportError(new _GraphQLError.GraphQLError(unusedVariableMessage(variableName, opName),
|
|
73
|
+
context.reportError(new _GraphQLError.GraphQLError(unusedVariableMessage(variableName, opName), variableDef));
|
|
72
74
|
}
|
|
73
75
|
}
|
|
74
76
|
}
|