graphql 16.14.0 → 16.14.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/error/GraphQLError.d.ts +151 -15
- package/error/GraphQLError.js +143 -12
- package/error/GraphQLError.mjs +143 -12
- package/error/index.d.ts +6 -0
- package/error/index.mjs +6 -0
- package/error/locatedError.d.ts +20 -0
- package/error/locatedError.js +21 -0
- package/error/locatedError.mjs +20 -0
- package/error/syntaxError.d.ts +15 -0
- package/error/syntaxError.js +16 -0
- package/error/syntaxError.mjs +15 -0
- package/execution/collectFields.js +6 -0
- package/execution/collectFields.mjs +6 -0
- package/execution/execute.d.ts +211 -12
- package/execution/execute.js +214 -23
- package/execution/execute.mjs +213 -23
- package/execution/index.d.ts +6 -0
- package/execution/index.mjs +6 -0
- package/execution/mapAsyncIterator.d.ts +2 -0
- package/execution/mapAsyncIterator.js +2 -0
- package/execution/mapAsyncIterator.mjs +2 -0
- package/execution/subscribe.d.ts +195 -5
- package/execution/subscribe.js +154 -11
- package/execution/subscribe.mjs +153 -11
- package/execution/values.d.ts +167 -10
- package/execution/values.js +149 -5
- package/execution/values.mjs +148 -5
- package/graphql.d.ts +163 -41
- package/graphql.js +126 -4
- package/graphql.mjs +131 -41
- package/index.d.ts +11 -17
- package/index.mjs +13 -19
- package/jsutils/Maybe.d.ts +5 -1
- package/jsutils/ObjMap.d.ts +4 -0
- package/jsutils/Path.d.ts +30 -0
- package/jsutils/Path.js +29 -0
- package/jsutils/Path.mjs +29 -0
- package/jsutils/PromiseOrValue.d.ts +1 -0
- package/jsutils/devAssert.d.ts +1 -0
- package/jsutils/devAssert.js +1 -0
- package/jsutils/devAssert.mjs +1 -0
- package/jsutils/didYouMean.d.ts +4 -1
- package/jsutils/didYouMean.js +4 -1
- package/jsutils/didYouMean.mjs +4 -1
- package/jsutils/groupBy.d.ts +2 -0
- package/jsutils/groupBy.js +2 -0
- package/jsutils/groupBy.mjs +2 -0
- package/jsutils/identityFunc.d.ts +2 -0
- package/jsutils/identityFunc.js +2 -0
- package/jsutils/identityFunc.mjs +2 -0
- package/jsutils/inspect.d.ts +2 -0
- package/jsutils/inspect.js +2 -0
- package/jsutils/inspect.mjs +2 -0
- package/jsutils/instanceOf.d.ts +2 -0
- package/jsutils/instanceOf.js +2 -0
- package/jsutils/instanceOf.mjs +2 -0
- package/jsutils/invariant.d.ts +1 -0
- package/jsutils/invariant.js +1 -0
- package/jsutils/invariant.mjs +1 -0
- package/jsutils/isAsyncIterable.d.ts +2 -0
- package/jsutils/isAsyncIterable.js +2 -0
- package/jsutils/isAsyncIterable.mjs +2 -0
- package/jsutils/isIterableObject.d.ts +6 -5
- package/jsutils/isIterableObject.js +6 -5
- package/jsutils/isIterableObject.mjs +6 -5
- package/jsutils/isObjectLike.d.ts +2 -0
- package/jsutils/isObjectLike.js +2 -0
- package/jsutils/isObjectLike.mjs +2 -0
- package/jsutils/isPromise.d.ts +2 -0
- package/jsutils/isPromise.js +2 -0
- package/jsutils/isPromise.mjs +2 -0
- package/jsutils/keyMap.d.ts +7 -14
- package/jsutils/keyMap.js +7 -14
- package/jsutils/keyMap.mjs +7 -14
- package/jsutils/keyValMap.d.ts +9 -6
- package/jsutils/keyValMap.js +9 -6
- package/jsutils/keyValMap.mjs +9 -6
- package/jsutils/mapValue.d.ts +2 -0
- package/jsutils/mapValue.js +2 -0
- package/jsutils/mapValue.mjs +2 -0
- package/jsutils/memoize3.d.ts +2 -0
- package/jsutils/memoize3.js +2 -0
- package/jsutils/memoize3.mjs +2 -0
- package/jsutils/naturalCompare.d.ts +2 -0
- package/jsutils/naturalCompare.js +2 -0
- package/jsutils/naturalCompare.mjs +2 -0
- package/jsutils/printPathArray.d.ts +2 -0
- package/jsutils/printPathArray.js +2 -0
- package/jsutils/printPathArray.mjs +2 -0
- package/jsutils/promiseForObject.d.ts +2 -0
- package/jsutils/promiseForObject.js +2 -0
- package/jsutils/promiseForObject.mjs +2 -0
- package/jsutils/promiseReduce.d.ts +2 -0
- package/jsutils/promiseReduce.js +2 -0
- package/jsutils/promiseReduce.mjs +2 -0
- package/jsutils/suggestionList.d.ts +2 -0
- package/jsutils/suggestionList.js +4 -0
- package/jsutils/suggestionList.mjs +4 -0
- package/jsutils/toError.d.ts +2 -0
- package/jsutils/toError.js +2 -0
- package/jsutils/toError.mjs +2 -0
- package/jsutils/toObjMap.d.ts +1 -0
- package/jsutils/toObjMap.js +1 -0
- package/jsutils/toObjMap.mjs +1 -0
- package/language/ast.d.ts +412 -54
- package/language/ast.js +95 -38
- package/language/ast.mjs +95 -38
- package/language/blockString.d.ts +1 -3
- package/language/blockString.js +1 -3
- package/language/blockString.mjs +1 -3
- package/language/directiveLocation.d.ts +28 -8
- package/language/directiveLocation.js +9 -6
- package/language/directiveLocation.mjs +9 -6
- package/language/index.d.ts +6 -0
- package/language/index.mjs +6 -0
- package/language/kinds.d.ts +57 -18
- package/language/kinds.js +9 -6
- package/language/kinds.mjs +9 -6
- package/language/lexer.d.ts +47 -14
- package/language/lexer.js +71 -13
- package/language/lexer.mjs +70 -13
- package/language/location.d.ts +16 -3
- package/language/location.js +14 -3
- package/language/location.mjs +14 -3
- package/language/parser.d.ts +236 -13
- package/language/parser.js +224 -0
- package/language/parser.mjs +224 -3
- package/language/predicates.d.ts +169 -0
- package/language/predicates.js +170 -0
- package/language/predicates.mjs +180 -0
- package/language/printLocation.d.ts +28 -0
- package/language/printLocation.js +29 -0
- package/language/printLocation.mjs +28 -0
- package/language/printString.d.ts +2 -0
- package/language/printString.js +5 -1
- package/language/printString.mjs +5 -1
- package/language/printer.d.ts +12 -0
- package/language/printer.js +19 -0
- package/language/printer.mjs +18 -0
- package/language/schemaCoordinateLexer.d.ts +8 -6
- package/language/schemaCoordinateLexer.js +10 -6
- package/language/schemaCoordinateLexer.mjs +10 -6
- package/language/source.d.ts +28 -0
- package/language/source.js +32 -0
- package/language/source.mjs +31 -0
- package/language/tokenKind.d.ts +30 -3
- package/language/tokenKind.js +8 -3
- package/language/tokenKind.mjs +8 -3
- package/language/visitor.d.ts +200 -72
- package/language/visitor.js +122 -50
- package/language/visitor.mjs +122 -54
- package/package.json +1 -1
- package/subscription/index.d.ts +9 -3
- package/subscription/index.mjs +9 -3
- package/type/assertName.d.ts +18 -1
- package/type/assertName.js +19 -1
- package/type/assertName.mjs +18 -1
- package/type/definition.d.ts +2540 -79
- package/type/definition.js +2214 -61
- package/type/definition.mjs +2241 -60
- package/type/directives.d.ts +193 -18
- package/type/directives.js +196 -19
- package/type/directives.mjs +196 -19
- package/type/index.d.ts +6 -0
- package/type/index.mjs +6 -0
- package/type/introspection.d.ts +36 -0
- package/type/introspection.js +33 -0
- package/type/introspection.mjs +41 -0
- package/type/scalars.d.ts +29 -2
- package/type/scalars.js +37 -2
- package/type/scalars.mjs +36 -2
- package/type/schema.d.ts +490 -28
- package/type/schema.js +484 -26
- package/type/schema.mjs +484 -26
- package/type/validate.d.ts +31 -0
- package/type/validate.js +32 -0
- package/type/validate.mjs +31 -0
- package/utilities/TypeInfo.d.ts +441 -1
- package/utilities/TypeInfo.js +444 -1
- package/utilities/TypeInfo.mjs +443 -1
- package/utilities/assertValidName.d.ts +27 -2
- package/utilities/assertValidName.js +28 -2
- package/utilities/assertValidName.mjs +27 -2
- package/utilities/astFromValue.d.ts +33 -3
- package/utilities/astFromValue.js +36 -3
- package/utilities/astFromValue.mjs +35 -3
- package/utilities/buildASTSchema.d.ts +65 -6
- package/utilities/buildASTSchema.js +65 -6
- package/utilities/buildASTSchema.mjs +65 -6
- package/utilities/buildClientSchema.d.ts +15 -0
- package/utilities/buildClientSchema.js +16 -0
- package/utilities/buildClientSchema.mjs +15 -0
- package/utilities/coerceInputValue.d.ts +46 -0
- package/utilities/coerceInputValue.js +47 -0
- package/utilities/coerceInputValue.mjs +46 -0
- package/utilities/concatAST.d.ts +12 -0
- package/utilities/concatAST.js +13 -0
- package/utilities/concatAST.mjs +12 -0
- package/utilities/extendSchema.d.ts +56 -3
- package/utilities/extendSchema.js +63 -3
- package/utilities/extendSchema.mjs +62 -3
- package/utilities/findBreakingChanges.d.ts +95 -0
- package/utilities/findBreakingChanges.js +68 -0
- package/utilities/findBreakingChanges.mjs +70 -0
- package/utilities/getIntrospectionQuery.d.ts +132 -0
- package/utilities/getIntrospectionQuery.js +41 -0
- package/utilities/getIntrospectionQuery.mjs +41 -0
- package/utilities/getOperationAST.d.ts +15 -0
- package/utilities/getOperationAST.js +16 -0
- package/utilities/getOperationAST.mjs +15 -0
- package/utilities/getOperationRootType.d.ts +18 -1
- package/utilities/getOperationRootType.js +19 -1
- package/utilities/getOperationRootType.mjs +18 -1
- package/utilities/index.d.ts +7 -0
- package/utilities/index.mjs +7 -0
- package/utilities/introspectionFromSchema.d.ts +54 -0
- package/utilities/introspectionFromSchema.js +55 -0
- package/utilities/introspectionFromSchema.mjs +54 -0
- package/utilities/lexicographicSortSchema.d.ts +35 -0
- package/utilities/lexicographicSortSchema.js +36 -0
- package/utilities/lexicographicSortSchema.mjs +35 -0
- package/utilities/printSchema.d.ts +63 -0
- package/utilities/printSchema.js +66 -0
- package/utilities/printSchema.mjs +67 -0
- package/utilities/resolveSchemaCoordinate.d.ts +62 -0
- package/utilities/resolveSchemaCoordinate.js +64 -0
- package/utilities/resolveSchemaCoordinate.mjs +63 -0
- package/utilities/separateOperations.d.ts +30 -0
- package/utilities/separateOperations.js +31 -0
- package/utilities/separateOperations.mjs +30 -0
- package/utilities/stripIgnoredCharacters.d.ts +13 -6
- package/utilities/stripIgnoredCharacters.js +16 -6
- package/utilities/stripIgnoredCharacters.mjs +15 -6
- package/utilities/typeComparators.d.ts +84 -0
- package/utilities/typeComparators.js +85 -0
- package/utilities/typeComparators.mjs +84 -0
- package/utilities/typeFromAST.d.ts +86 -0
- package/utilities/typeFromAST.js +3 -0
- package/utilities/typeFromAST.mjs +3 -0
- package/utilities/typedQueryDocumentNode.d.ts +4 -0
- package/utilities/valueFromAST.d.ts +38 -0
- package/utilities/valueFromAST.js +39 -0
- package/utilities/valueFromAST.mjs +38 -0
- package/utilities/valueFromASTUntyped.d.ts +15 -2
- package/utilities/valueFromASTUntyped.js +16 -2
- package/utilities/valueFromASTUntyped.mjs +15 -2
- package/validation/ValidationContext.d.ts +399 -0
- package/validation/ValidationContext.js +400 -0
- package/validation/ValidationContext.mjs +401 -0
- package/validation/index.d.ts +6 -0
- package/validation/index.mjs +6 -0
- package/validation/rules/ExecutableDefinitionsRule.d.ts +28 -0
- package/validation/rules/ExecutableDefinitionsRule.js +29 -0
- package/validation/rules/ExecutableDefinitionsRule.mjs +28 -0
- package/validation/rules/FieldsOnCorrectTypeRule.d.ts +28 -0
- package/validation/rules/FieldsOnCorrectTypeRule.js +33 -0
- package/validation/rules/FieldsOnCorrectTypeRule.mjs +32 -0
- package/validation/rules/FragmentsOnCompositeTypesRule.d.ts +28 -0
- package/validation/rules/FragmentsOnCompositeTypesRule.js +29 -0
- package/validation/rules/FragmentsOnCompositeTypesRule.mjs +28 -0
- package/validation/rules/KnownArgumentNamesRule.d.ts +29 -3
- package/validation/rules/KnownArgumentNamesRule.js +30 -3
- package/validation/rules/KnownArgumentNamesRule.mjs +29 -3
- package/validation/rules/KnownDirectivesRule.d.ts +28 -0
- package/validation/rules/KnownDirectivesRule.js +29 -0
- package/validation/rules/KnownDirectivesRule.mjs +28 -0
- package/validation/rules/KnownFragmentNamesRule.d.ts +28 -0
- package/validation/rules/KnownFragmentNamesRule.js +29 -0
- package/validation/rules/KnownFragmentNamesRule.mjs +28 -0
- package/validation/rules/KnownTypeNamesRule.d.ts +28 -0
- package/validation/rules/KnownTypeNamesRule.js +29 -0
- package/validation/rules/KnownTypeNamesRule.mjs +28 -0
- package/validation/rules/LoneAnonymousOperationRule.d.ts +28 -0
- package/validation/rules/LoneAnonymousOperationRule.js +29 -0
- package/validation/rules/LoneAnonymousOperationRule.mjs +28 -0
- package/validation/rules/LoneSchemaDefinitionRule.d.ts +21 -0
- package/validation/rules/LoneSchemaDefinitionRule.js +22 -0
- package/validation/rules/LoneSchemaDefinitionRule.mjs +21 -0
- package/validation/rules/MaxIntrospectionDepthRule.d.ts +31 -0
- package/validation/rules/MaxIntrospectionDepthRule.js +33 -0
- package/validation/rules/MaxIntrospectionDepthRule.mjs +34 -0
- package/validation/rules/NoFragmentCyclesRule.d.ts +28 -0
- package/validation/rules/NoFragmentCyclesRule.js +29 -0
- package/validation/rules/NoFragmentCyclesRule.mjs +28 -0
- package/validation/rules/NoUndefinedVariablesRule.d.ts +28 -0
- package/validation/rules/NoUndefinedVariablesRule.js +29 -0
- package/validation/rules/NoUndefinedVariablesRule.mjs +28 -0
- package/validation/rules/NoUnusedFragmentsRule.d.ts +28 -0
- package/validation/rules/NoUnusedFragmentsRule.js +29 -0
- package/validation/rules/NoUnusedFragmentsRule.mjs +28 -0
- package/validation/rules/NoUnusedVariablesRule.d.ts +29 -0
- package/validation/rules/NoUnusedVariablesRule.js +30 -0
- package/validation/rules/NoUnusedVariablesRule.mjs +29 -0
- package/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +33 -0
- package/validation/rules/OverlappingFieldsCanBeMergedRule.js +45 -6
- package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +45 -6
- package/validation/rules/PossibleFragmentSpreadsRule.d.ts +36 -0
- package/validation/rules/PossibleFragmentSpreadsRule.js +37 -0
- package/validation/rules/PossibleFragmentSpreadsRule.mjs +36 -0
- package/validation/rules/PossibleTypeExtensionsRule.d.ts +21 -0
- package/validation/rules/PossibleTypeExtensionsRule.js +22 -0
- package/validation/rules/PossibleTypeExtensionsRule.mjs +21 -0
- package/validation/rules/ProvidedRequiredArgumentsRule.d.ts +29 -3
- package/validation/rules/ProvidedRequiredArgumentsRule.js +30 -3
- package/validation/rules/ProvidedRequiredArgumentsRule.mjs +29 -3
- package/validation/rules/ScalarLeafsRule.d.ts +28 -0
- package/validation/rules/ScalarLeafsRule.js +29 -0
- package/validation/rules/ScalarLeafsRule.mjs +28 -0
- package/validation/rules/SingleFieldSubscriptionsRule.d.ts +33 -0
- package/validation/rules/SingleFieldSubscriptionsRule.js +34 -0
- package/validation/rules/SingleFieldSubscriptionsRule.mjs +33 -0
- package/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +21 -0
- package/validation/rules/UniqueArgumentDefinitionNamesRule.js +22 -0
- package/validation/rules/UniqueArgumentDefinitionNamesRule.mjs +21 -0
- package/validation/rules/UniqueArgumentNamesRule.d.ts +28 -0
- package/validation/rules/UniqueArgumentNamesRule.js +29 -0
- package/validation/rules/UniqueArgumentNamesRule.mjs +28 -0
- package/validation/rules/UniqueDirectiveNamesRule.d.ts +21 -0
- package/validation/rules/UniqueDirectiveNamesRule.js +22 -0
- package/validation/rules/UniqueDirectiveNamesRule.mjs +21 -0
- package/validation/rules/UniqueDirectivesPerLocationRule.d.ts +28 -0
- package/validation/rules/UniqueDirectivesPerLocationRule.js +29 -0
- package/validation/rules/UniqueDirectivesPerLocationRule.mjs +28 -0
- package/validation/rules/UniqueEnumValueNamesRule.d.ts +21 -0
- package/validation/rules/UniqueEnumValueNamesRule.js +22 -0
- package/validation/rules/UniqueEnumValueNamesRule.mjs +21 -0
- package/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +21 -0
- package/validation/rules/UniqueFieldDefinitionNamesRule.js +22 -0
- package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +21 -0
- package/validation/rules/UniqueFragmentNamesRule.d.ts +28 -0
- package/validation/rules/UniqueFragmentNamesRule.js +29 -0
- package/validation/rules/UniqueFragmentNamesRule.mjs +28 -0
- package/validation/rules/UniqueInputFieldNamesRule.d.ts +32 -0
- package/validation/rules/UniqueInputFieldNamesRule.js +33 -0
- package/validation/rules/UniqueInputFieldNamesRule.mjs +32 -0
- package/validation/rules/UniqueOperationNamesRule.d.ts +28 -0
- package/validation/rules/UniqueOperationNamesRule.js +29 -0
- package/validation/rules/UniqueOperationNamesRule.mjs +28 -0
- package/validation/rules/UniqueOperationTypesRule.d.ts +21 -0
- package/validation/rules/UniqueOperationTypesRule.js +22 -0
- package/validation/rules/UniqueOperationTypesRule.mjs +21 -0
- package/validation/rules/UniqueTypeNamesRule.d.ts +21 -0
- package/validation/rules/UniqueTypeNamesRule.js +22 -0
- package/validation/rules/UniqueTypeNamesRule.mjs +21 -0
- package/validation/rules/UniqueVariableNamesRule.d.ts +28 -0
- package/validation/rules/UniqueVariableNamesRule.js +29 -0
- package/validation/rules/UniqueVariableNamesRule.mjs +28 -0
- package/validation/rules/ValuesOfCorrectTypeRule.d.ts +28 -0
- package/validation/rules/ValuesOfCorrectTypeRule.js +31 -0
- package/validation/rules/ValuesOfCorrectTypeRule.mjs +30 -0
- package/validation/rules/VariablesAreInputTypesRule.d.ts +32 -0
- package/validation/rules/VariablesAreInputTypesRule.js +33 -0
- package/validation/rules/VariablesAreInputTypesRule.mjs +32 -0
- package/validation/rules/VariablesInAllowedPositionRule.d.ts +28 -0
- package/validation/rules/VariablesInAllowedPositionRule.js +35 -1
- package/validation/rules/VariablesInAllowedPositionRule.mjs +34 -1
- package/validation/rules/custom/NoDeprecatedCustomRule.d.ts +41 -0
- package/validation/rules/custom/NoDeprecatedCustomRule.js +42 -0
- package/validation/rules/custom/NoDeprecatedCustomRule.mjs +41 -0
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +28 -0
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +29 -0
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs +28 -0
- package/validation/specifiedRules.d.ts +2 -3
- package/validation/specifiedRules.js +2 -3
- package/validation/specifiedRules.mjs +2 -3
- package/validation/validate.d.ts +70 -9
- package/validation/validate.js +63 -7
- package/validation/validate.mjs +63 -7
- package/version.d.ts +3 -6
- package/version.js +6 -8
- package/version.mjs +5 -8
|
@@ -15,6 +15,8 @@ var _GraphQLError = require('../../error/GraphQLError.js');
|
|
|
15
15
|
|
|
16
16
|
var _definition = require('../../type/definition.js');
|
|
17
17
|
|
|
18
|
+
/** @category Validation Rules */
|
|
19
|
+
|
|
18
20
|
/**
|
|
19
21
|
* Fields on correct type
|
|
20
22
|
*
|
|
@@ -22,6 +24,33 @@ var _definition = require('../../type/definition.js');
|
|
|
22
24
|
* parent type, or are an allowed meta field such as __typename.
|
|
23
25
|
*
|
|
24
26
|
* See https://spec.graphql.org/draft/#sec-Field-Selections
|
|
27
|
+
* @param context - The validation context used while checking the document.
|
|
28
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* import { buildSchema, parse, validate } from 'graphql';
|
|
32
|
+
* import { FieldsOnCorrectTypeRule } from 'graphql/validation';
|
|
33
|
+
*
|
|
34
|
+
* const schema = buildSchema(`
|
|
35
|
+
* type Query {
|
|
36
|
+
* name: String
|
|
37
|
+
* }
|
|
38
|
+
* `);
|
|
39
|
+
*
|
|
40
|
+
* const invalidDocument = parse(`
|
|
41
|
+
* { missing }
|
|
42
|
+
* `);
|
|
43
|
+
* const invalidErrors = validate(schema, invalidDocument, [FieldsOnCorrectTypeRule]);
|
|
44
|
+
*
|
|
45
|
+
* invalidErrors.length; // => 1
|
|
46
|
+
*
|
|
47
|
+
* const validDocument = parse(`
|
|
48
|
+
* { name }
|
|
49
|
+
* `);
|
|
50
|
+
* const validErrors = validate(schema, validDocument, [FieldsOnCorrectTypeRule]);
|
|
51
|
+
*
|
|
52
|
+
* validErrors; // => []
|
|
53
|
+
* ```
|
|
25
54
|
*/
|
|
26
55
|
function FieldsOnCorrectTypeRule(context) {
|
|
27
56
|
return {
|
|
@@ -65,6 +94,8 @@ function FieldsOnCorrectTypeRule(context) {
|
|
|
65
94
|
* Go through all of the implementations of type, as well as the interfaces that
|
|
66
95
|
* they implement. If any of those types include the provided field, suggest them,
|
|
67
96
|
* sorted by how often the type is referenced.
|
|
97
|
+
*
|
|
98
|
+
* @internal
|
|
68
99
|
*/
|
|
69
100
|
|
|
70
101
|
function getSuggestedTypeNames(schema, type, fieldName) {
|
|
@@ -130,6 +161,8 @@ function getSuggestedTypeNames(schema, type, fieldName) {
|
|
|
130
161
|
/**
|
|
131
162
|
* For the field name provided, determine if there are any similar field names
|
|
132
163
|
* that may be the result of a typo.
|
|
164
|
+
*
|
|
165
|
+
* @internal
|
|
133
166
|
*/
|
|
134
167
|
|
|
135
168
|
function getSuggestedFieldNames(type, fieldName) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Validation Rules */
|
|
1
2
|
import { didYouMean } from '../../jsutils/didYouMean.mjs';
|
|
2
3
|
import { naturalCompare } from '../../jsutils/naturalCompare.mjs';
|
|
3
4
|
import { suggestionList } from '../../jsutils/suggestionList.mjs';
|
|
@@ -15,6 +16,33 @@ import {
|
|
|
15
16
|
* parent type, or are an allowed meta field such as __typename.
|
|
16
17
|
*
|
|
17
18
|
* See https://spec.graphql.org/draft/#sec-Field-Selections
|
|
19
|
+
* @param context - The validation context used while checking the document.
|
|
20
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* import { buildSchema, parse, validate } from 'graphql';
|
|
24
|
+
* import { FieldsOnCorrectTypeRule } from 'graphql/validation';
|
|
25
|
+
*
|
|
26
|
+
* const schema = buildSchema(`
|
|
27
|
+
* type Query {
|
|
28
|
+
* name: String
|
|
29
|
+
* }
|
|
30
|
+
* `);
|
|
31
|
+
*
|
|
32
|
+
* const invalidDocument = parse(`
|
|
33
|
+
* { missing }
|
|
34
|
+
* `);
|
|
35
|
+
* const invalidErrors = validate(schema, invalidDocument, [FieldsOnCorrectTypeRule]);
|
|
36
|
+
*
|
|
37
|
+
* invalidErrors.length; // => 1
|
|
38
|
+
*
|
|
39
|
+
* const validDocument = parse(`
|
|
40
|
+
* { name }
|
|
41
|
+
* `);
|
|
42
|
+
* const validErrors = validate(schema, validDocument, [FieldsOnCorrectTypeRule]);
|
|
43
|
+
*
|
|
44
|
+
* validErrors; // => []
|
|
45
|
+
* ```
|
|
18
46
|
*/
|
|
19
47
|
export function FieldsOnCorrectTypeRule(context) {
|
|
20
48
|
return {
|
|
@@ -56,6 +84,8 @@ export function FieldsOnCorrectTypeRule(context) {
|
|
|
56
84
|
* Go through all of the implementations of type, as well as the interfaces that
|
|
57
85
|
* they implement. If any of those types include the provided field, suggest them,
|
|
58
86
|
* sorted by how often the type is referenced.
|
|
87
|
+
*
|
|
88
|
+
* @internal
|
|
59
89
|
*/
|
|
60
90
|
|
|
61
91
|
function getSuggestedTypeNames(schema, type, fieldName) {
|
|
@@ -115,6 +145,8 @@ function getSuggestedTypeNames(schema, type, fieldName) {
|
|
|
115
145
|
/**
|
|
116
146
|
* For the field name provided, determine if there are any similar field names
|
|
117
147
|
* that may be the result of a typo.
|
|
148
|
+
*
|
|
149
|
+
* @internal
|
|
118
150
|
*/
|
|
119
151
|
|
|
120
152
|
function getSuggestedFieldNames(type, fieldName) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Validation Rules */
|
|
1
2
|
import type { ASTVisitor } from '../../language/visitor';
|
|
2
3
|
import type { ValidationContext } from '../ValidationContext';
|
|
3
4
|
/**
|
|
@@ -8,6 +9,33 @@ import type { ValidationContext } from '../ValidationContext';
|
|
|
8
9
|
* type condition must also be a composite type.
|
|
9
10
|
*
|
|
10
11
|
* See https://spec.graphql.org/draft/#sec-Fragments-On-Composite-Types
|
|
12
|
+
* @param context - The validation context used while checking the document.
|
|
13
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { buildSchema, parse, validate } from 'graphql';
|
|
17
|
+
* import { FragmentsOnCompositeTypesRule } from 'graphql/validation';
|
|
18
|
+
*
|
|
19
|
+
* const schema = buildSchema(`
|
|
20
|
+
* type Query {
|
|
21
|
+
* name: String
|
|
22
|
+
* }
|
|
23
|
+
* `);
|
|
24
|
+
*
|
|
25
|
+
* const invalidDocument = parse(`
|
|
26
|
+
* fragment Bad on String { length }
|
|
27
|
+
* `);
|
|
28
|
+
* const invalidErrors = validate(schema, invalidDocument, [FragmentsOnCompositeTypesRule]);
|
|
29
|
+
*
|
|
30
|
+
* invalidErrors.length; // => 1
|
|
31
|
+
*
|
|
32
|
+
* const validDocument = parse(`
|
|
33
|
+
* fragment Good on Query { name }
|
|
34
|
+
* `);
|
|
35
|
+
* const validErrors = validate(schema, validDocument, [FragmentsOnCompositeTypesRule]);
|
|
36
|
+
*
|
|
37
|
+
* validErrors; // => []
|
|
38
|
+
* ```
|
|
11
39
|
*/
|
|
12
40
|
export declare function FragmentsOnCompositeTypesRule(
|
|
13
41
|
context: ValidationContext,
|
|
@@ -13,6 +13,8 @@ var _definition = require('../../type/definition.js');
|
|
|
13
13
|
|
|
14
14
|
var _typeFromAST = require('../../utilities/typeFromAST.js');
|
|
15
15
|
|
|
16
|
+
/** @category Validation Rules */
|
|
17
|
+
|
|
16
18
|
/**
|
|
17
19
|
* Fragments on composite type
|
|
18
20
|
*
|
|
@@ -21,6 +23,33 @@ var _typeFromAST = require('../../utilities/typeFromAST.js');
|
|
|
21
23
|
* type condition must also be a composite type.
|
|
22
24
|
*
|
|
23
25
|
* See https://spec.graphql.org/draft/#sec-Fragments-On-Composite-Types
|
|
26
|
+
* @param context - The validation context used while checking the document.
|
|
27
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* import { buildSchema, parse, validate } from 'graphql';
|
|
31
|
+
* import { FragmentsOnCompositeTypesRule } from 'graphql/validation';
|
|
32
|
+
*
|
|
33
|
+
* const schema = buildSchema(`
|
|
34
|
+
* type Query {
|
|
35
|
+
* name: String
|
|
36
|
+
* }
|
|
37
|
+
* `);
|
|
38
|
+
*
|
|
39
|
+
* const invalidDocument = parse(`
|
|
40
|
+
* fragment Bad on String { length }
|
|
41
|
+
* `);
|
|
42
|
+
* const invalidErrors = validate(schema, invalidDocument, [FragmentsOnCompositeTypesRule]);
|
|
43
|
+
*
|
|
44
|
+
* invalidErrors.length; // => 1
|
|
45
|
+
*
|
|
46
|
+
* const validDocument = parse(`
|
|
47
|
+
* fragment Good on Query { name }
|
|
48
|
+
* `);
|
|
49
|
+
* const validErrors = validate(schema, validDocument, [FragmentsOnCompositeTypesRule]);
|
|
50
|
+
*
|
|
51
|
+
* validErrors; // => []
|
|
52
|
+
* ```
|
|
24
53
|
*/
|
|
25
54
|
function FragmentsOnCompositeTypesRule(context) {
|
|
26
55
|
return {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Validation Rules */
|
|
1
2
|
import { GraphQLError } from '../../error/GraphQLError.mjs';
|
|
2
3
|
import { print } from '../../language/printer.mjs';
|
|
3
4
|
import { isCompositeType } from '../../type/definition.mjs';
|
|
@@ -11,6 +12,33 @@ import { typeFromAST } from '../../utilities/typeFromAST.mjs';
|
|
|
11
12
|
* type condition must also be a composite type.
|
|
12
13
|
*
|
|
13
14
|
* See https://spec.graphql.org/draft/#sec-Fragments-On-Composite-Types
|
|
15
|
+
* @param context - The validation context used while checking the document.
|
|
16
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* import { buildSchema, parse, validate } from 'graphql';
|
|
20
|
+
* import { FragmentsOnCompositeTypesRule } from 'graphql/validation';
|
|
21
|
+
*
|
|
22
|
+
* const schema = buildSchema(`
|
|
23
|
+
* type Query {
|
|
24
|
+
* name: String
|
|
25
|
+
* }
|
|
26
|
+
* `);
|
|
27
|
+
*
|
|
28
|
+
* const invalidDocument = parse(`
|
|
29
|
+
* fragment Bad on String { length }
|
|
30
|
+
* `);
|
|
31
|
+
* const invalidErrors = validate(schema, invalidDocument, [FragmentsOnCompositeTypesRule]);
|
|
32
|
+
*
|
|
33
|
+
* invalidErrors.length; // => 1
|
|
34
|
+
*
|
|
35
|
+
* const validDocument = parse(`
|
|
36
|
+
* fragment Good on Query { name }
|
|
37
|
+
* `);
|
|
38
|
+
* const validErrors = validate(schema, validDocument, [FragmentsOnCompositeTypesRule]);
|
|
39
|
+
*
|
|
40
|
+
* validErrors; // => []
|
|
41
|
+
* ```
|
|
14
42
|
*/
|
|
15
43
|
export function FragmentsOnCompositeTypesRule(context) {
|
|
16
44
|
return {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Validation Rules */
|
|
1
2
|
import type { ASTVisitor } from '../../language/visitor';
|
|
2
3
|
import type {
|
|
3
4
|
SDLValidationContext,
|
|
@@ -11,13 +12,38 @@ import type {
|
|
|
11
12
|
*
|
|
12
13
|
* See https://spec.graphql.org/draft/#sec-Argument-Names
|
|
13
14
|
* See https://spec.graphql.org/draft/#sec-Directives-Are-In-Valid-Locations
|
|
15
|
+
* @param context - The validation context used while checking the document.
|
|
16
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* import { buildSchema, parse, validate } from 'graphql';
|
|
20
|
+
* import { KnownArgumentNamesRule } from 'graphql/validation';
|
|
21
|
+
*
|
|
22
|
+
* const schema = buildSchema(`
|
|
23
|
+
* type Query {
|
|
24
|
+
* field(arg: String): String
|
|
25
|
+
* }
|
|
26
|
+
* `);
|
|
27
|
+
*
|
|
28
|
+
* const invalidDocument = parse(`
|
|
29
|
+
* { field(unknown: "1") }
|
|
30
|
+
* `);
|
|
31
|
+
* const invalidErrors = validate(schema, invalidDocument, [KnownArgumentNamesRule]);
|
|
32
|
+
*
|
|
33
|
+
* invalidErrors.length; // => 1
|
|
34
|
+
*
|
|
35
|
+
* const validDocument = parse(`
|
|
36
|
+
* { field(arg: "1") }
|
|
37
|
+
* `);
|
|
38
|
+
* const validErrors = validate(schema, validDocument, [KnownArgumentNamesRule]);
|
|
39
|
+
*
|
|
40
|
+
* validErrors; // => []
|
|
41
|
+
* ```
|
|
14
42
|
*/
|
|
15
43
|
export declare function KnownArgumentNamesRule(
|
|
16
44
|
context: ValidationContext,
|
|
17
45
|
): ASTVisitor;
|
|
18
|
-
/**
|
|
19
|
-
* @internal
|
|
20
|
-
*/
|
|
46
|
+
/** @internal */
|
|
21
47
|
export declare function KnownArgumentNamesOnDirectivesRule(
|
|
22
48
|
context: ValidationContext | SDLValidationContext,
|
|
23
49
|
): ASTVisitor;
|
|
@@ -16,6 +16,8 @@ var _kinds = require('../../language/kinds.js');
|
|
|
16
16
|
|
|
17
17
|
var _directives = require('../../type/directives.js');
|
|
18
18
|
|
|
19
|
+
/** @category Validation Rules */
|
|
20
|
+
|
|
19
21
|
/**
|
|
20
22
|
* Known argument names
|
|
21
23
|
*
|
|
@@ -24,6 +26,33 @@ var _directives = require('../../type/directives.js');
|
|
|
24
26
|
*
|
|
25
27
|
* See https://spec.graphql.org/draft/#sec-Argument-Names
|
|
26
28
|
* See https://spec.graphql.org/draft/#sec-Directives-Are-In-Valid-Locations
|
|
29
|
+
* @param context - The validation context used while checking the document.
|
|
30
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
31
|
+
* @example
|
|
32
|
+
* ```ts
|
|
33
|
+
* import { buildSchema, parse, validate } from 'graphql';
|
|
34
|
+
* import { KnownArgumentNamesRule } from 'graphql/validation';
|
|
35
|
+
*
|
|
36
|
+
* const schema = buildSchema(`
|
|
37
|
+
* type Query {
|
|
38
|
+
* field(arg: String): String
|
|
39
|
+
* }
|
|
40
|
+
* `);
|
|
41
|
+
*
|
|
42
|
+
* const invalidDocument = parse(`
|
|
43
|
+
* { field(unknown: "1") }
|
|
44
|
+
* `);
|
|
45
|
+
* const invalidErrors = validate(schema, invalidDocument, [KnownArgumentNamesRule]);
|
|
46
|
+
*
|
|
47
|
+
* invalidErrors.length; // => 1
|
|
48
|
+
*
|
|
49
|
+
* const validDocument = parse(`
|
|
50
|
+
* { field(arg: "1") }
|
|
51
|
+
* `);
|
|
52
|
+
* const validErrors = validate(schema, validDocument, [KnownArgumentNamesRule]);
|
|
53
|
+
*
|
|
54
|
+
* validErrors; // => []
|
|
55
|
+
* ```
|
|
27
56
|
*/
|
|
28
57
|
function KnownArgumentNamesRule(context) {
|
|
29
58
|
return {
|
|
@@ -55,9 +84,7 @@ function KnownArgumentNamesRule(context) {
|
|
|
55
84
|
},
|
|
56
85
|
};
|
|
57
86
|
}
|
|
58
|
-
/**
|
|
59
|
-
* @internal
|
|
60
|
-
*/
|
|
87
|
+
/** @internal */
|
|
61
88
|
|
|
62
89
|
function KnownArgumentNamesOnDirectivesRule(context) {
|
|
63
90
|
const directiveArgs = Object.create(null);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Validation Rules */
|
|
1
2
|
import { didYouMean } from '../../jsutils/didYouMean.mjs';
|
|
2
3
|
import { suggestionList } from '../../jsutils/suggestionList.mjs';
|
|
3
4
|
import { GraphQLError } from '../../error/GraphQLError.mjs';
|
|
@@ -12,6 +13,33 @@ import { specifiedDirectives } from '../../type/directives.mjs';
|
|
|
12
13
|
*
|
|
13
14
|
* See https://spec.graphql.org/draft/#sec-Argument-Names
|
|
14
15
|
* See https://spec.graphql.org/draft/#sec-Directives-Are-In-Valid-Locations
|
|
16
|
+
* @param context - The validation context used while checking the document.
|
|
17
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* import { buildSchema, parse, validate } from 'graphql';
|
|
21
|
+
* import { KnownArgumentNamesRule } from 'graphql/validation';
|
|
22
|
+
*
|
|
23
|
+
* const schema = buildSchema(`
|
|
24
|
+
* type Query {
|
|
25
|
+
* field(arg: String): String
|
|
26
|
+
* }
|
|
27
|
+
* `);
|
|
28
|
+
*
|
|
29
|
+
* const invalidDocument = parse(`
|
|
30
|
+
* { field(unknown: "1") }
|
|
31
|
+
* `);
|
|
32
|
+
* const invalidErrors = validate(schema, invalidDocument, [KnownArgumentNamesRule]);
|
|
33
|
+
*
|
|
34
|
+
* invalidErrors.length; // => 1
|
|
35
|
+
*
|
|
36
|
+
* const validDocument = parse(`
|
|
37
|
+
* { field(arg: "1") }
|
|
38
|
+
* `);
|
|
39
|
+
* const validErrors = validate(schema, validDocument, [KnownArgumentNamesRule]);
|
|
40
|
+
*
|
|
41
|
+
* validErrors; // => []
|
|
42
|
+
* ```
|
|
15
43
|
*/
|
|
16
44
|
export function KnownArgumentNamesRule(context) {
|
|
17
45
|
return {
|
|
@@ -40,9 +68,7 @@ export function KnownArgumentNamesRule(context) {
|
|
|
40
68
|
},
|
|
41
69
|
};
|
|
42
70
|
}
|
|
43
|
-
/**
|
|
44
|
-
* @internal
|
|
45
|
-
*/
|
|
71
|
+
/** @internal */
|
|
46
72
|
|
|
47
73
|
export function KnownArgumentNamesOnDirectivesRule(context) {
|
|
48
74
|
const directiveArgs = Object.create(null);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Validation Rules */
|
|
1
2
|
import type { ASTVisitor } from '../../language/visitor';
|
|
2
3
|
import type {
|
|
3
4
|
SDLValidationContext,
|
|
@@ -10,6 +11,33 @@ import type {
|
|
|
10
11
|
* schema and legally positioned.
|
|
11
12
|
*
|
|
12
13
|
* See https://spec.graphql.org/draft/#sec-Directives-Are-Defined
|
|
14
|
+
* @param context - The validation context used while checking the document.
|
|
15
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* import { buildSchema, parse, validate } from 'graphql';
|
|
19
|
+
* import { KnownDirectivesRule } from 'graphql/validation';
|
|
20
|
+
*
|
|
21
|
+
* const schema = buildSchema(`
|
|
22
|
+
* type Query {
|
|
23
|
+
* name: String
|
|
24
|
+
* }
|
|
25
|
+
* `);
|
|
26
|
+
*
|
|
27
|
+
* const invalidDocument = parse(`
|
|
28
|
+
* { name @unknown }
|
|
29
|
+
* `);
|
|
30
|
+
* const invalidErrors = validate(schema, invalidDocument, [KnownDirectivesRule]);
|
|
31
|
+
*
|
|
32
|
+
* invalidErrors.length; // => 1
|
|
33
|
+
*
|
|
34
|
+
* const validDocument = parse(`
|
|
35
|
+
* { name @include(if: true) }
|
|
36
|
+
* `);
|
|
37
|
+
* const validErrors = validate(schema, validDocument, [KnownDirectivesRule]);
|
|
38
|
+
*
|
|
39
|
+
* validErrors; // => []
|
|
40
|
+
* ```
|
|
13
41
|
*/
|
|
14
42
|
export declare function KnownDirectivesRule(
|
|
15
43
|
context: ValidationContext | SDLValidationContext,
|
|
@@ -19,6 +19,8 @@ var _kinds = require('../../language/kinds.js');
|
|
|
19
19
|
|
|
20
20
|
var _directives = require('../../type/directives.js');
|
|
21
21
|
|
|
22
|
+
/** @category Validation Rules */
|
|
23
|
+
|
|
22
24
|
/**
|
|
23
25
|
* Known directives
|
|
24
26
|
*
|
|
@@ -26,6 +28,33 @@ var _directives = require('../../type/directives.js');
|
|
|
26
28
|
* schema and legally positioned.
|
|
27
29
|
*
|
|
28
30
|
* See https://spec.graphql.org/draft/#sec-Directives-Are-Defined
|
|
31
|
+
* @param context - The validation context used while checking the document.
|
|
32
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
33
|
+
* @example
|
|
34
|
+
* ```ts
|
|
35
|
+
* import { buildSchema, parse, validate } from 'graphql';
|
|
36
|
+
* import { KnownDirectivesRule } from 'graphql/validation';
|
|
37
|
+
*
|
|
38
|
+
* const schema = buildSchema(`
|
|
39
|
+
* type Query {
|
|
40
|
+
* name: String
|
|
41
|
+
* }
|
|
42
|
+
* `);
|
|
43
|
+
*
|
|
44
|
+
* const invalidDocument = parse(`
|
|
45
|
+
* { name @unknown }
|
|
46
|
+
* `);
|
|
47
|
+
* const invalidErrors = validate(schema, invalidDocument, [KnownDirectivesRule]);
|
|
48
|
+
*
|
|
49
|
+
* invalidErrors.length; // => 1
|
|
50
|
+
*
|
|
51
|
+
* const validDocument = parse(`
|
|
52
|
+
* { name @include(if: true) }
|
|
53
|
+
* `);
|
|
54
|
+
* const validErrors = validate(schema, validDocument, [KnownDirectivesRule]);
|
|
55
|
+
*
|
|
56
|
+
* validErrors; // => []
|
|
57
|
+
* ```
|
|
29
58
|
*/
|
|
30
59
|
function KnownDirectivesRule(context) {
|
|
31
60
|
const locationsMap = Object.create(null);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Validation Rules */
|
|
1
2
|
import { inspect } from '../../jsutils/inspect.mjs';
|
|
2
3
|
import { invariant } from '../../jsutils/invariant.mjs';
|
|
3
4
|
import { GraphQLError } from '../../error/GraphQLError.mjs';
|
|
@@ -13,6 +14,33 @@ import { specifiedDirectives } from '../../type/directives.mjs';
|
|
|
13
14
|
* schema and legally positioned.
|
|
14
15
|
*
|
|
15
16
|
* See https://spec.graphql.org/draft/#sec-Directives-Are-Defined
|
|
17
|
+
* @param context - The validation context used while checking the document.
|
|
18
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* import { buildSchema, parse, validate } from 'graphql';
|
|
22
|
+
* import { KnownDirectivesRule } from 'graphql/validation';
|
|
23
|
+
*
|
|
24
|
+
* const schema = buildSchema(`
|
|
25
|
+
* type Query {
|
|
26
|
+
* name: String
|
|
27
|
+
* }
|
|
28
|
+
* `);
|
|
29
|
+
*
|
|
30
|
+
* const invalidDocument = parse(`
|
|
31
|
+
* { name @unknown }
|
|
32
|
+
* `);
|
|
33
|
+
* const invalidErrors = validate(schema, invalidDocument, [KnownDirectivesRule]);
|
|
34
|
+
*
|
|
35
|
+
* invalidErrors.length; // => 1
|
|
36
|
+
*
|
|
37
|
+
* const validDocument = parse(`
|
|
38
|
+
* { name @include(if: true) }
|
|
39
|
+
* `);
|
|
40
|
+
* const validErrors = validate(schema, validDocument, [KnownDirectivesRule]);
|
|
41
|
+
*
|
|
42
|
+
* validErrors; // => []
|
|
43
|
+
* ```
|
|
16
44
|
*/
|
|
17
45
|
export function KnownDirectivesRule(context) {
|
|
18
46
|
const locationsMap = Object.create(null);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Validation Rules */
|
|
1
2
|
import type { ASTVisitor } from '../../language/visitor';
|
|
2
3
|
import type { ValidationContext } from '../ValidationContext';
|
|
3
4
|
/**
|
|
@@ -7,6 +8,33 @@ import type { ValidationContext } from '../ValidationContext';
|
|
|
7
8
|
* to fragments defined in the same document.
|
|
8
9
|
*
|
|
9
10
|
* See https://spec.graphql.org/draft/#sec-Fragment-spread-target-defined
|
|
11
|
+
* @param context - The validation context used while checking the document.
|
|
12
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* import { buildSchema, parse, validate } from 'graphql';
|
|
16
|
+
* import { KnownFragmentNamesRule } from 'graphql/validation';
|
|
17
|
+
*
|
|
18
|
+
* const schema = buildSchema(`
|
|
19
|
+
* type Query {
|
|
20
|
+
* name: String
|
|
21
|
+
* }
|
|
22
|
+
* `);
|
|
23
|
+
*
|
|
24
|
+
* const invalidDocument = parse(`
|
|
25
|
+
* { ...Missing }
|
|
26
|
+
* `);
|
|
27
|
+
* const invalidErrors = validate(schema, invalidDocument, [KnownFragmentNamesRule]);
|
|
28
|
+
*
|
|
29
|
+
* invalidErrors.length; // => 1
|
|
30
|
+
*
|
|
31
|
+
* const validDocument = parse(`
|
|
32
|
+
* fragment NameFields on Query { name } query { ...NameFields }
|
|
33
|
+
* `);
|
|
34
|
+
* const validErrors = validate(schema, validDocument, [KnownFragmentNamesRule]);
|
|
35
|
+
*
|
|
36
|
+
* validErrors; // => []
|
|
37
|
+
* ```
|
|
10
38
|
*/
|
|
11
39
|
export declare function KnownFragmentNamesRule(
|
|
12
40
|
context: ValidationContext,
|
|
@@ -7,6 +7,8 @@ exports.KnownFragmentNamesRule = KnownFragmentNamesRule;
|
|
|
7
7
|
|
|
8
8
|
var _GraphQLError = require('../../error/GraphQLError.js');
|
|
9
9
|
|
|
10
|
+
/** @category Validation Rules */
|
|
11
|
+
|
|
10
12
|
/**
|
|
11
13
|
* Known fragment names
|
|
12
14
|
*
|
|
@@ -14,6 +16,33 @@ var _GraphQLError = require('../../error/GraphQLError.js');
|
|
|
14
16
|
* to fragments defined in the same document.
|
|
15
17
|
*
|
|
16
18
|
* See https://spec.graphql.org/draft/#sec-Fragment-spread-target-defined
|
|
19
|
+
* @param context - The validation context used while checking the document.
|
|
20
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* import { buildSchema, parse, validate } from 'graphql';
|
|
24
|
+
* import { KnownFragmentNamesRule } from 'graphql/validation';
|
|
25
|
+
*
|
|
26
|
+
* const schema = buildSchema(`
|
|
27
|
+
* type Query {
|
|
28
|
+
* name: String
|
|
29
|
+
* }
|
|
30
|
+
* `);
|
|
31
|
+
*
|
|
32
|
+
* const invalidDocument = parse(`
|
|
33
|
+
* { ...Missing }
|
|
34
|
+
* `);
|
|
35
|
+
* const invalidErrors = validate(schema, invalidDocument, [KnownFragmentNamesRule]);
|
|
36
|
+
*
|
|
37
|
+
* invalidErrors.length; // => 1
|
|
38
|
+
*
|
|
39
|
+
* const validDocument = parse(`
|
|
40
|
+
* fragment NameFields on Query { name } query { ...NameFields }
|
|
41
|
+
* `);
|
|
42
|
+
* const validErrors = validate(schema, validDocument, [KnownFragmentNamesRule]);
|
|
43
|
+
*
|
|
44
|
+
* validErrors; // => []
|
|
45
|
+
* ```
|
|
17
46
|
*/
|
|
18
47
|
function KnownFragmentNamesRule(context) {
|
|
19
48
|
return {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Validation Rules */
|
|
1
2
|
import { GraphQLError } from '../../error/GraphQLError.mjs';
|
|
2
3
|
|
|
3
4
|
/**
|
|
@@ -7,6 +8,33 @@ import { GraphQLError } from '../../error/GraphQLError.mjs';
|
|
|
7
8
|
* to fragments defined in the same document.
|
|
8
9
|
*
|
|
9
10
|
* See https://spec.graphql.org/draft/#sec-Fragment-spread-target-defined
|
|
11
|
+
* @param context - The validation context used while checking the document.
|
|
12
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* import { buildSchema, parse, validate } from 'graphql';
|
|
16
|
+
* import { KnownFragmentNamesRule } from 'graphql/validation';
|
|
17
|
+
*
|
|
18
|
+
* const schema = buildSchema(`
|
|
19
|
+
* type Query {
|
|
20
|
+
* name: String
|
|
21
|
+
* }
|
|
22
|
+
* `);
|
|
23
|
+
*
|
|
24
|
+
* const invalidDocument = parse(`
|
|
25
|
+
* { ...Missing }
|
|
26
|
+
* `);
|
|
27
|
+
* const invalidErrors = validate(schema, invalidDocument, [KnownFragmentNamesRule]);
|
|
28
|
+
*
|
|
29
|
+
* invalidErrors.length; // => 1
|
|
30
|
+
*
|
|
31
|
+
* const validDocument = parse(`
|
|
32
|
+
* fragment NameFields on Query { name } query { ...NameFields }
|
|
33
|
+
* `);
|
|
34
|
+
* const validErrors = validate(schema, validDocument, [KnownFragmentNamesRule]);
|
|
35
|
+
*
|
|
36
|
+
* validErrors; // => []
|
|
37
|
+
* ```
|
|
10
38
|
*/
|
|
11
39
|
export function KnownFragmentNamesRule(context) {
|
|
12
40
|
return {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Validation Rules */
|
|
1
2
|
import type { ASTVisitor } from '../../language/visitor';
|
|
2
3
|
import type {
|
|
3
4
|
SDLValidationContext,
|
|
@@ -10,6 +11,33 @@ import type {
|
|
|
10
11
|
* variable definitions and fragment conditions) are defined by the type schema.
|
|
11
12
|
*
|
|
12
13
|
* See https://spec.graphql.org/draft/#sec-Fragment-Spread-Type-Existence
|
|
14
|
+
* @param context - The validation context used while checking the document.
|
|
15
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* import { buildSchema, parse, validate } from 'graphql';
|
|
19
|
+
* import { KnownTypeNamesRule } from 'graphql/validation';
|
|
20
|
+
*
|
|
21
|
+
* const schema = buildSchema(`
|
|
22
|
+
* type Query {
|
|
23
|
+
* name: String
|
|
24
|
+
* }
|
|
25
|
+
* `);
|
|
26
|
+
*
|
|
27
|
+
* const invalidDocument = parse(`
|
|
28
|
+
* fragment Bad on Missing { name }
|
|
29
|
+
* `);
|
|
30
|
+
* const invalidErrors = validate(schema, invalidDocument, [KnownTypeNamesRule]);
|
|
31
|
+
*
|
|
32
|
+
* invalidErrors.length; // => 1
|
|
33
|
+
*
|
|
34
|
+
* const validDocument = parse(`
|
|
35
|
+
* fragment Good on Query { name }
|
|
36
|
+
* `);
|
|
37
|
+
* const validErrors = validate(schema, validDocument, [KnownTypeNamesRule]);
|
|
38
|
+
*
|
|
39
|
+
* validErrors; // => []
|
|
40
|
+
* ```
|
|
13
41
|
*/
|
|
14
42
|
export declare function KnownTypeNamesRule(
|
|
15
43
|
context: ValidationContext | SDLValidationContext,
|