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
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Validation Rules */
|
|
1
2
|
import type { ASTVisitor } from '../../language/visitor';
|
|
2
3
|
import type { ASTValidationContext } from '../ValidationContext';
|
|
3
4
|
/**
|
|
@@ -6,6 +7,33 @@ import type { ASTValidationContext } from '../ValidationContext';
|
|
|
6
7
|
* A GraphQL document is only valid if all defined operations have unique names.
|
|
7
8
|
*
|
|
8
9
|
* See https://spec.graphql.org/draft/#sec-Operation-Name-Uniqueness
|
|
10
|
+
* @param context - The validation context used while checking the document.
|
|
11
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* import { buildSchema, parse, validate } from 'graphql';
|
|
15
|
+
* import { UniqueOperationNamesRule } from 'graphql/validation';
|
|
16
|
+
*
|
|
17
|
+
* const schema = buildSchema(`
|
|
18
|
+
* type Query {
|
|
19
|
+
* name: String
|
|
20
|
+
* }
|
|
21
|
+
* `);
|
|
22
|
+
*
|
|
23
|
+
* const invalidDocument = parse(`
|
|
24
|
+
* query Same { name } query Same { name }
|
|
25
|
+
* `);
|
|
26
|
+
* const invalidErrors = validate(schema, invalidDocument, [UniqueOperationNamesRule]);
|
|
27
|
+
*
|
|
28
|
+
* invalidErrors.length; // => 1
|
|
29
|
+
*
|
|
30
|
+
* const validDocument = parse(`
|
|
31
|
+
* query One { name } query Two { name }
|
|
32
|
+
* `);
|
|
33
|
+
* const validErrors = validate(schema, validDocument, [UniqueOperationNamesRule]);
|
|
34
|
+
*
|
|
35
|
+
* validErrors; // => []
|
|
36
|
+
* ```
|
|
9
37
|
*/
|
|
10
38
|
export declare function UniqueOperationNamesRule(
|
|
11
39
|
context: ASTValidationContext,
|
|
@@ -7,12 +7,41 @@ exports.UniqueOperationNamesRule = UniqueOperationNamesRule;
|
|
|
7
7
|
|
|
8
8
|
var _GraphQLError = require('../../error/GraphQLError.js');
|
|
9
9
|
|
|
10
|
+
/** @category Validation Rules */
|
|
11
|
+
|
|
10
12
|
/**
|
|
11
13
|
* Unique operation names
|
|
12
14
|
*
|
|
13
15
|
* A GraphQL document is only valid if all defined operations have unique names.
|
|
14
16
|
*
|
|
15
17
|
* See https://spec.graphql.org/draft/#sec-Operation-Name-Uniqueness
|
|
18
|
+
* @param context - The validation context used while checking the document.
|
|
19
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* import { buildSchema, parse, validate } from 'graphql';
|
|
23
|
+
* import { UniqueOperationNamesRule } from 'graphql/validation';
|
|
24
|
+
*
|
|
25
|
+
* const schema = buildSchema(`
|
|
26
|
+
* type Query {
|
|
27
|
+
* name: String
|
|
28
|
+
* }
|
|
29
|
+
* `);
|
|
30
|
+
*
|
|
31
|
+
* const invalidDocument = parse(`
|
|
32
|
+
* query Same { name } query Same { name }
|
|
33
|
+
* `);
|
|
34
|
+
* const invalidErrors = validate(schema, invalidDocument, [UniqueOperationNamesRule]);
|
|
35
|
+
*
|
|
36
|
+
* invalidErrors.length; // => 1
|
|
37
|
+
*
|
|
38
|
+
* const validDocument = parse(`
|
|
39
|
+
* query One { name } query Two { name }
|
|
40
|
+
* `);
|
|
41
|
+
* const validErrors = validate(schema, validDocument, [UniqueOperationNamesRule]);
|
|
42
|
+
*
|
|
43
|
+
* validErrors; // => []
|
|
44
|
+
* ```
|
|
16
45
|
*/
|
|
17
46
|
function UniqueOperationNamesRule(context) {
|
|
18
47
|
const knownOperationNames = Object.create(null);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Validation Rules */
|
|
1
2
|
import { GraphQLError } from '../../error/GraphQLError.mjs';
|
|
2
3
|
|
|
3
4
|
/**
|
|
@@ -6,6 +7,33 @@ import { GraphQLError } from '../../error/GraphQLError.mjs';
|
|
|
6
7
|
* A GraphQL document is only valid if all defined operations have unique names.
|
|
7
8
|
*
|
|
8
9
|
* See https://spec.graphql.org/draft/#sec-Operation-Name-Uniqueness
|
|
10
|
+
* @param context - The validation context used while checking the document.
|
|
11
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* import { buildSchema, parse, validate } from 'graphql';
|
|
15
|
+
* import { UniqueOperationNamesRule } from 'graphql/validation';
|
|
16
|
+
*
|
|
17
|
+
* const schema = buildSchema(`
|
|
18
|
+
* type Query {
|
|
19
|
+
* name: String
|
|
20
|
+
* }
|
|
21
|
+
* `);
|
|
22
|
+
*
|
|
23
|
+
* const invalidDocument = parse(`
|
|
24
|
+
* query Same { name } query Same { name }
|
|
25
|
+
* `);
|
|
26
|
+
* const invalidErrors = validate(schema, invalidDocument, [UniqueOperationNamesRule]);
|
|
27
|
+
*
|
|
28
|
+
* invalidErrors.length; // => 1
|
|
29
|
+
*
|
|
30
|
+
* const validDocument = parse(`
|
|
31
|
+
* query One { name } query Two { name }
|
|
32
|
+
* `);
|
|
33
|
+
* const validErrors = validate(schema, validDocument, [UniqueOperationNamesRule]);
|
|
34
|
+
*
|
|
35
|
+
* validErrors; // => []
|
|
36
|
+
* ```
|
|
9
37
|
*/
|
|
10
38
|
export function UniqueOperationNamesRule(context) {
|
|
11
39
|
const knownOperationNames = Object.create(null);
|
|
@@ -1,9 +1,30 @@
|
|
|
1
|
+
/** @category Validation Rules */
|
|
1
2
|
import type { ASTVisitor } from '../../language/visitor';
|
|
2
3
|
import type { SDLValidationContext } from '../ValidationContext';
|
|
3
4
|
/**
|
|
4
5
|
* Unique operation types
|
|
5
6
|
*
|
|
6
7
|
* A GraphQL document is only valid if it has only one type per operation.
|
|
8
|
+
* @param context - The validation context used while checking the document.
|
|
9
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* import { buildSchema } from 'graphql';
|
|
13
|
+
* import { UniqueOperationTypesRule } from 'graphql/validation';
|
|
14
|
+
*
|
|
15
|
+
* const invalidSDL = `
|
|
16
|
+
* schema { query: Query query: Other } type Query { name: String } type Other { name: String }
|
|
17
|
+
* `;
|
|
18
|
+
*
|
|
19
|
+
* UniqueOperationTypesRule.name; // => 'UniqueOperationTypesRule'
|
|
20
|
+
* buildSchema(invalidSDL); // throws an error
|
|
21
|
+
*
|
|
22
|
+
* const validSDL = `
|
|
23
|
+
* schema { query: Query } type Query { name: String }
|
|
24
|
+
* `;
|
|
25
|
+
*
|
|
26
|
+
* buildSchema(validSDL); // does not throw
|
|
27
|
+
* ```
|
|
7
28
|
*/
|
|
8
29
|
export declare function UniqueOperationTypesRule(
|
|
9
30
|
context: SDLValidationContext,
|
|
@@ -7,10 +7,32 @@ exports.UniqueOperationTypesRule = UniqueOperationTypesRule;
|
|
|
7
7
|
|
|
8
8
|
var _GraphQLError = require('../../error/GraphQLError.js');
|
|
9
9
|
|
|
10
|
+
/** @category Validation Rules */
|
|
11
|
+
|
|
10
12
|
/**
|
|
11
13
|
* Unique operation types
|
|
12
14
|
*
|
|
13
15
|
* A GraphQL document is only valid if it has only one type per operation.
|
|
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 } from 'graphql';
|
|
21
|
+
* import { UniqueOperationTypesRule } from 'graphql/validation';
|
|
22
|
+
*
|
|
23
|
+
* const invalidSDL = `
|
|
24
|
+
* schema { query: Query query: Other } type Query { name: String } type Other { name: String }
|
|
25
|
+
* `;
|
|
26
|
+
*
|
|
27
|
+
* UniqueOperationTypesRule.name; // => 'UniqueOperationTypesRule'
|
|
28
|
+
* buildSchema(invalidSDL); // throws an error
|
|
29
|
+
*
|
|
30
|
+
* const validSDL = `
|
|
31
|
+
* schema { query: Query } type Query { name: String }
|
|
32
|
+
* `;
|
|
33
|
+
*
|
|
34
|
+
* buildSchema(validSDL); // does not throw
|
|
35
|
+
* ```
|
|
14
36
|
*/
|
|
15
37
|
function UniqueOperationTypesRule(context) {
|
|
16
38
|
const schema = context.getSchema();
|
|
@@ -1,9 +1,30 @@
|
|
|
1
|
+
/** @category Validation Rules */
|
|
1
2
|
import { GraphQLError } from '../../error/GraphQLError.mjs';
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* Unique operation types
|
|
5
6
|
*
|
|
6
7
|
* A GraphQL document is only valid if it has only one type per operation.
|
|
8
|
+
* @param context - The validation context used while checking the document.
|
|
9
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* import { buildSchema } from 'graphql';
|
|
13
|
+
* import { UniqueOperationTypesRule } from 'graphql/validation';
|
|
14
|
+
*
|
|
15
|
+
* const invalidSDL = `
|
|
16
|
+
* schema { query: Query query: Other } type Query { name: String } type Other { name: String }
|
|
17
|
+
* `;
|
|
18
|
+
*
|
|
19
|
+
* UniqueOperationTypesRule.name; // => 'UniqueOperationTypesRule'
|
|
20
|
+
* buildSchema(invalidSDL); // throws an error
|
|
21
|
+
*
|
|
22
|
+
* const validSDL = `
|
|
23
|
+
* schema { query: Query } type Query { name: String }
|
|
24
|
+
* `;
|
|
25
|
+
*
|
|
26
|
+
* buildSchema(validSDL); // does not throw
|
|
27
|
+
* ```
|
|
7
28
|
*/
|
|
8
29
|
export function UniqueOperationTypesRule(context) {
|
|
9
30
|
const schema = context.getSchema();
|
|
@@ -1,9 +1,30 @@
|
|
|
1
|
+
/** @category Validation Rules */
|
|
1
2
|
import type { ASTVisitor } from '../../language/visitor';
|
|
2
3
|
import type { SDLValidationContext } from '../ValidationContext';
|
|
3
4
|
/**
|
|
4
5
|
* Unique type names
|
|
5
6
|
*
|
|
6
7
|
* A GraphQL document is only valid if all defined types have unique names.
|
|
8
|
+
* @param context - The validation context used while checking the document.
|
|
9
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* import { buildSchema } from 'graphql';
|
|
13
|
+
* import { UniqueTypeNamesRule } from 'graphql/validation';
|
|
14
|
+
*
|
|
15
|
+
* const invalidSDL = `
|
|
16
|
+
* type Query { name: String } type Query { other: String }
|
|
17
|
+
* `;
|
|
18
|
+
*
|
|
19
|
+
* UniqueTypeNamesRule.name; // => 'UniqueTypeNamesRule'
|
|
20
|
+
* buildSchema(invalidSDL); // throws an error
|
|
21
|
+
*
|
|
22
|
+
* const validSDL = `
|
|
23
|
+
* type Query { name: String } type Other { name: String }
|
|
24
|
+
* `;
|
|
25
|
+
*
|
|
26
|
+
* buildSchema(validSDL); // does not throw
|
|
27
|
+
* ```
|
|
7
28
|
*/
|
|
8
29
|
export declare function UniqueTypeNamesRule(
|
|
9
30
|
context: SDLValidationContext,
|
|
@@ -7,10 +7,32 @@ exports.UniqueTypeNamesRule = UniqueTypeNamesRule;
|
|
|
7
7
|
|
|
8
8
|
var _GraphQLError = require('../../error/GraphQLError.js');
|
|
9
9
|
|
|
10
|
+
/** @category Validation Rules */
|
|
11
|
+
|
|
10
12
|
/**
|
|
11
13
|
* Unique type names
|
|
12
14
|
*
|
|
13
15
|
* A GraphQL document is only valid if all defined types have unique names.
|
|
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 } from 'graphql';
|
|
21
|
+
* import { UniqueTypeNamesRule } from 'graphql/validation';
|
|
22
|
+
*
|
|
23
|
+
* const invalidSDL = `
|
|
24
|
+
* type Query { name: String } type Query { other: String }
|
|
25
|
+
* `;
|
|
26
|
+
*
|
|
27
|
+
* UniqueTypeNamesRule.name; // => 'UniqueTypeNamesRule'
|
|
28
|
+
* buildSchema(invalidSDL); // throws an error
|
|
29
|
+
*
|
|
30
|
+
* const validSDL = `
|
|
31
|
+
* type Query { name: String } type Other { name: String }
|
|
32
|
+
* `;
|
|
33
|
+
*
|
|
34
|
+
* buildSchema(validSDL); // does not throw
|
|
35
|
+
* ```
|
|
14
36
|
*/
|
|
15
37
|
function UniqueTypeNamesRule(context) {
|
|
16
38
|
const knownTypeNames = Object.create(null);
|
|
@@ -1,9 +1,30 @@
|
|
|
1
|
+
/** @category Validation Rules */
|
|
1
2
|
import { GraphQLError } from '../../error/GraphQLError.mjs';
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* Unique type names
|
|
5
6
|
*
|
|
6
7
|
* A GraphQL document is only valid if all defined types have unique names.
|
|
8
|
+
* @param context - The validation context used while checking the document.
|
|
9
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* import { buildSchema } from 'graphql';
|
|
13
|
+
* import { UniqueTypeNamesRule } from 'graphql/validation';
|
|
14
|
+
*
|
|
15
|
+
* const invalidSDL = `
|
|
16
|
+
* type Query { name: String } type Query { other: String }
|
|
17
|
+
* `;
|
|
18
|
+
*
|
|
19
|
+
* UniqueTypeNamesRule.name; // => 'UniqueTypeNamesRule'
|
|
20
|
+
* buildSchema(invalidSDL); // throws an error
|
|
21
|
+
*
|
|
22
|
+
* const validSDL = `
|
|
23
|
+
* type Query { name: String } type Other { name: String }
|
|
24
|
+
* `;
|
|
25
|
+
*
|
|
26
|
+
* buildSchema(validSDL); // does not throw
|
|
27
|
+
* ```
|
|
7
28
|
*/
|
|
8
29
|
export function UniqueTypeNamesRule(context) {
|
|
9
30
|
const knownTypeNames = Object.create(null);
|
|
@@ -1,9 +1,37 @@
|
|
|
1
|
+
/** @category Validation Rules */
|
|
1
2
|
import type { ASTVisitor } from '../../language/visitor';
|
|
2
3
|
import type { ASTValidationContext } from '../ValidationContext';
|
|
3
4
|
/**
|
|
4
5
|
* Unique variable names
|
|
5
6
|
*
|
|
6
7
|
* A GraphQL operation is only valid if all its variables are uniquely named.
|
|
8
|
+
* @param context - The validation context used while checking the document.
|
|
9
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* import { buildSchema, parse, validate } from 'graphql';
|
|
13
|
+
* import { UniqueVariableNamesRule } from 'graphql/validation';
|
|
14
|
+
*
|
|
15
|
+
* const schema = buildSchema(`
|
|
16
|
+
* type Query {
|
|
17
|
+
* field(arg: ID): String
|
|
18
|
+
* }
|
|
19
|
+
* `);
|
|
20
|
+
*
|
|
21
|
+
* const invalidDocument = parse(`
|
|
22
|
+
* query ($id: ID, $id: ID) { field(arg: $id) }
|
|
23
|
+
* `);
|
|
24
|
+
* const invalidErrors = validate(schema, invalidDocument, [UniqueVariableNamesRule]);
|
|
25
|
+
*
|
|
26
|
+
* invalidErrors.length; // => 1
|
|
27
|
+
*
|
|
28
|
+
* const validDocument = parse(`
|
|
29
|
+
* query ($id: ID) { field(arg: $id) }
|
|
30
|
+
* `);
|
|
31
|
+
* const validErrors = validate(schema, validDocument, [UniqueVariableNamesRule]);
|
|
32
|
+
*
|
|
33
|
+
* validErrors; // => []
|
|
34
|
+
* ```
|
|
7
35
|
*/
|
|
8
36
|
export declare function UniqueVariableNamesRule(
|
|
9
37
|
context: ASTValidationContext,
|
|
@@ -9,10 +9,39 @@ var _groupBy = require('../../jsutils/groupBy.js');
|
|
|
9
9
|
|
|
10
10
|
var _GraphQLError = require('../../error/GraphQLError.js');
|
|
11
11
|
|
|
12
|
+
/** @category Validation Rules */
|
|
13
|
+
|
|
12
14
|
/**
|
|
13
15
|
* Unique variable names
|
|
14
16
|
*
|
|
15
17
|
* A GraphQL operation is only valid if all its variables are uniquely named.
|
|
18
|
+
* @param context - The validation context used while checking the document.
|
|
19
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* import { buildSchema, parse, validate } from 'graphql';
|
|
23
|
+
* import { UniqueVariableNamesRule } from 'graphql/validation';
|
|
24
|
+
*
|
|
25
|
+
* const schema = buildSchema(`
|
|
26
|
+
* type Query {
|
|
27
|
+
* field(arg: ID): String
|
|
28
|
+
* }
|
|
29
|
+
* `);
|
|
30
|
+
*
|
|
31
|
+
* const invalidDocument = parse(`
|
|
32
|
+
* query ($id: ID, $id: ID) { field(arg: $id) }
|
|
33
|
+
* `);
|
|
34
|
+
* const invalidErrors = validate(schema, invalidDocument, [UniqueVariableNamesRule]);
|
|
35
|
+
*
|
|
36
|
+
* invalidErrors.length; // => 1
|
|
37
|
+
*
|
|
38
|
+
* const validDocument = parse(`
|
|
39
|
+
* query ($id: ID) { field(arg: $id) }
|
|
40
|
+
* `);
|
|
41
|
+
* const validErrors = validate(schema, validDocument, [UniqueVariableNamesRule]);
|
|
42
|
+
*
|
|
43
|
+
* validErrors; // => []
|
|
44
|
+
* ```
|
|
16
45
|
*/
|
|
17
46
|
function UniqueVariableNamesRule(context) {
|
|
18
47
|
return {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Validation Rules */
|
|
1
2
|
import { groupBy } from '../../jsutils/groupBy.mjs';
|
|
2
3
|
import { GraphQLError } from '../../error/GraphQLError.mjs';
|
|
3
4
|
|
|
@@ -5,6 +6,33 @@ import { GraphQLError } from '../../error/GraphQLError.mjs';
|
|
|
5
6
|
* Unique variable names
|
|
6
7
|
*
|
|
7
8
|
* A GraphQL operation is only valid if all its variables are uniquely named.
|
|
9
|
+
* @param context - The validation context used while checking the document.
|
|
10
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* import { buildSchema, parse, validate } from 'graphql';
|
|
14
|
+
* import { UniqueVariableNamesRule } from 'graphql/validation';
|
|
15
|
+
*
|
|
16
|
+
* const schema = buildSchema(`
|
|
17
|
+
* type Query {
|
|
18
|
+
* field(arg: ID): String
|
|
19
|
+
* }
|
|
20
|
+
* `);
|
|
21
|
+
*
|
|
22
|
+
* const invalidDocument = parse(`
|
|
23
|
+
* query ($id: ID, $id: ID) { field(arg: $id) }
|
|
24
|
+
* `);
|
|
25
|
+
* const invalidErrors = validate(schema, invalidDocument, [UniqueVariableNamesRule]);
|
|
26
|
+
*
|
|
27
|
+
* invalidErrors.length; // => 1
|
|
28
|
+
*
|
|
29
|
+
* const validDocument = parse(`
|
|
30
|
+
* query ($id: ID) { field(arg: $id) }
|
|
31
|
+
* `);
|
|
32
|
+
* const validErrors = validate(schema, validDocument, [UniqueVariableNamesRule]);
|
|
33
|
+
*
|
|
34
|
+
* validErrors; // => []
|
|
35
|
+
* ```
|
|
8
36
|
*/
|
|
9
37
|
export function UniqueVariableNamesRule(context) {
|
|
10
38
|
return {
|
|
@@ -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
|
* expected at their position.
|
|
8
9
|
*
|
|
9
10
|
* See https://spec.graphql.org/draft/#sec-Values-of-Correct-Type
|
|
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 { ValuesOfCorrectTypeRule } from 'graphql/validation';
|
|
17
|
+
*
|
|
18
|
+
* const schema = buildSchema(`
|
|
19
|
+
* type Query {
|
|
20
|
+
* count(limit: Int): Int
|
|
21
|
+
* }
|
|
22
|
+
* `);
|
|
23
|
+
*
|
|
24
|
+
* const invalidDocument = parse(`
|
|
25
|
+
* { count(limit: "many") }
|
|
26
|
+
* `);
|
|
27
|
+
* const invalidErrors = validate(schema, invalidDocument, [ValuesOfCorrectTypeRule]);
|
|
28
|
+
*
|
|
29
|
+
* invalidErrors.length; // => 1
|
|
30
|
+
*
|
|
31
|
+
* const validDocument = parse(`
|
|
32
|
+
* { count(limit: 1) }
|
|
33
|
+
* `);
|
|
34
|
+
* const validErrors = validate(schema, validDocument, [ValuesOfCorrectTypeRule]);
|
|
35
|
+
*
|
|
36
|
+
* validErrors; // => []
|
|
37
|
+
* ```
|
|
10
38
|
*/
|
|
11
39
|
export declare function ValuesOfCorrectTypeRule(
|
|
12
40
|
context: ValidationContext,
|
|
@@ -21,6 +21,8 @@ var _printer = require('../../language/printer.js');
|
|
|
21
21
|
|
|
22
22
|
var _definition = require('../../type/definition.js');
|
|
23
23
|
|
|
24
|
+
/** @category Validation Rules */
|
|
25
|
+
|
|
24
26
|
/**
|
|
25
27
|
* Value literals of correct type
|
|
26
28
|
*
|
|
@@ -28,6 +30,33 @@ var _definition = require('../../type/definition.js');
|
|
|
28
30
|
* expected at their position.
|
|
29
31
|
*
|
|
30
32
|
* See https://spec.graphql.org/draft/#sec-Values-of-Correct-Type
|
|
33
|
+
* @param context - The validation context used while checking the document.
|
|
34
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
35
|
+
* @example
|
|
36
|
+
* ```ts
|
|
37
|
+
* import { buildSchema, parse, validate } from 'graphql';
|
|
38
|
+
* import { ValuesOfCorrectTypeRule } from 'graphql/validation';
|
|
39
|
+
*
|
|
40
|
+
* const schema = buildSchema(`
|
|
41
|
+
* type Query {
|
|
42
|
+
* count(limit: Int): Int
|
|
43
|
+
* }
|
|
44
|
+
* `);
|
|
45
|
+
*
|
|
46
|
+
* const invalidDocument = parse(`
|
|
47
|
+
* { count(limit: "many") }
|
|
48
|
+
* `);
|
|
49
|
+
* const invalidErrors = validate(schema, invalidDocument, [ValuesOfCorrectTypeRule]);
|
|
50
|
+
*
|
|
51
|
+
* invalidErrors.length; // => 1
|
|
52
|
+
*
|
|
53
|
+
* const validDocument = parse(`
|
|
54
|
+
* { count(limit: 1) }
|
|
55
|
+
* `);
|
|
56
|
+
* const validErrors = validate(schema, validDocument, [ValuesOfCorrectTypeRule]);
|
|
57
|
+
*
|
|
58
|
+
* validErrors; // => []
|
|
59
|
+
* ```
|
|
31
60
|
*/
|
|
32
61
|
function ValuesOfCorrectTypeRule(context) {
|
|
33
62
|
return {
|
|
@@ -133,6 +162,8 @@ function ValuesOfCorrectTypeRule(context) {
|
|
|
133
162
|
/**
|
|
134
163
|
* Any value literal may be a valid representation of a Scalar, depending on
|
|
135
164
|
* that scalar type.
|
|
165
|
+
*
|
|
166
|
+
* @internal
|
|
136
167
|
*/
|
|
137
168
|
|
|
138
169
|
function isValidValueNode(context, node) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Validation Rules */
|
|
1
2
|
import { didYouMean } from '../../jsutils/didYouMean.mjs';
|
|
2
3
|
import { inspect } from '../../jsutils/inspect.mjs';
|
|
3
4
|
import { keyMap } from '../../jsutils/keyMap.mjs';
|
|
@@ -22,6 +23,33 @@ import {
|
|
|
22
23
|
* expected at their position.
|
|
23
24
|
*
|
|
24
25
|
* See https://spec.graphql.org/draft/#sec-Values-of-Correct-Type
|
|
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 { ValuesOfCorrectTypeRule } from 'graphql/validation';
|
|
32
|
+
*
|
|
33
|
+
* const schema = buildSchema(`
|
|
34
|
+
* type Query {
|
|
35
|
+
* count(limit: Int): Int
|
|
36
|
+
* }
|
|
37
|
+
* `);
|
|
38
|
+
*
|
|
39
|
+
* const invalidDocument = parse(`
|
|
40
|
+
* { count(limit: "many") }
|
|
41
|
+
* `);
|
|
42
|
+
* const invalidErrors = validate(schema, invalidDocument, [ValuesOfCorrectTypeRule]);
|
|
43
|
+
*
|
|
44
|
+
* invalidErrors.length; // => 1
|
|
45
|
+
*
|
|
46
|
+
* const validDocument = parse(`
|
|
47
|
+
* { count(limit: 1) }
|
|
48
|
+
* `);
|
|
49
|
+
* const validErrors = validate(schema, validDocument, [ValuesOfCorrectTypeRule]);
|
|
50
|
+
*
|
|
51
|
+
* validErrors; // => []
|
|
52
|
+
* ```
|
|
25
53
|
*/
|
|
26
54
|
export function ValuesOfCorrectTypeRule(context) {
|
|
27
55
|
return {
|
|
@@ -118,6 +146,8 @@ export function ValuesOfCorrectTypeRule(context) {
|
|
|
118
146
|
/**
|
|
119
147
|
* Any value literal may be a valid representation of a Scalar, depending on
|
|
120
148
|
* that scalar type.
|
|
149
|
+
*
|
|
150
|
+
* @internal
|
|
121
151
|
*/
|
|
122
152
|
|
|
123
153
|
function isValidValueNode(context, node) {
|
|
@@ -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,37 @@ import type { ValidationContext } from '../ValidationContext';
|
|
|
7
8
|
* input types (scalar, enum, or input object).
|
|
8
9
|
*
|
|
9
10
|
* See https://spec.graphql.org/draft/#sec-Variables-Are-Input-Types
|
|
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 { VariablesAreInputTypesRule } from 'graphql/validation';
|
|
17
|
+
*
|
|
18
|
+
* const schema = buildSchema(`
|
|
19
|
+
* type Query {
|
|
20
|
+
* field(arg: ID): String
|
|
21
|
+
* }
|
|
22
|
+
*
|
|
23
|
+
* type User {
|
|
24
|
+
* name: String
|
|
25
|
+
* }
|
|
26
|
+
* `);
|
|
27
|
+
*
|
|
28
|
+
* const invalidDocument = parse(`
|
|
29
|
+
* query ($user: User) { field(arg: "1") }
|
|
30
|
+
* `);
|
|
31
|
+
* const invalidErrors = validate(schema, invalidDocument, [VariablesAreInputTypesRule]);
|
|
32
|
+
*
|
|
33
|
+
* invalidErrors.length; // => 1
|
|
34
|
+
*
|
|
35
|
+
* const validDocument = parse(`
|
|
36
|
+
* query ($id: ID) { field(arg: $id) }
|
|
37
|
+
* `);
|
|
38
|
+
* const validErrors = validate(schema, validDocument, [VariablesAreInputTypesRule]);
|
|
39
|
+
*
|
|
40
|
+
* validErrors; // => []
|
|
41
|
+
* ```
|
|
10
42
|
*/
|
|
11
43
|
export declare function VariablesAreInputTypesRule(
|
|
12
44
|
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
|
* Variables are input types
|
|
18
20
|
*
|
|
@@ -20,6 +22,37 @@ var _typeFromAST = require('../../utilities/typeFromAST.js');
|
|
|
20
22
|
* input types (scalar, enum, or input object).
|
|
21
23
|
*
|
|
22
24
|
* See https://spec.graphql.org/draft/#sec-Variables-Are-Input-Types
|
|
25
|
+
* @param context - The validation context used while checking the document.
|
|
26
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
27
|
+
* @example
|
|
28
|
+
* ```ts
|
|
29
|
+
* import { buildSchema, parse, validate } from 'graphql';
|
|
30
|
+
* import { VariablesAreInputTypesRule } from 'graphql/validation';
|
|
31
|
+
*
|
|
32
|
+
* const schema = buildSchema(`
|
|
33
|
+
* type Query {
|
|
34
|
+
* field(arg: ID): String
|
|
35
|
+
* }
|
|
36
|
+
*
|
|
37
|
+
* type User {
|
|
38
|
+
* name: String
|
|
39
|
+
* }
|
|
40
|
+
* `);
|
|
41
|
+
*
|
|
42
|
+
* const invalidDocument = parse(`
|
|
43
|
+
* query ($user: User) { field(arg: "1") }
|
|
44
|
+
* `);
|
|
45
|
+
* const invalidErrors = validate(schema, invalidDocument, [VariablesAreInputTypesRule]);
|
|
46
|
+
*
|
|
47
|
+
* invalidErrors.length; // => 1
|
|
48
|
+
*
|
|
49
|
+
* const validDocument = parse(`
|
|
50
|
+
* query ($id: ID) { field(arg: $id) }
|
|
51
|
+
* `);
|
|
52
|
+
* const validErrors = validate(schema, validDocument, [VariablesAreInputTypesRule]);
|
|
53
|
+
*
|
|
54
|
+
* validErrors; // => []
|
|
55
|
+
* ```
|
|
23
56
|
*/
|
|
24
57
|
function VariablesAreInputTypesRule(context) {
|
|
25
58
|
return {
|