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
|
@@ -21,10 +21,32 @@ var _predicates = require('../../language/predicates.js');
|
|
|
21
21
|
|
|
22
22
|
var _definition = require('../../type/definition.js');
|
|
23
23
|
|
|
24
|
+
/** @category Validation Rules */
|
|
25
|
+
|
|
24
26
|
/**
|
|
25
27
|
* Possible type extension
|
|
26
28
|
*
|
|
27
29
|
* A type extension is only valid if the type is defined and has the same kind.
|
|
30
|
+
* @param context - The validation context used while checking the document.
|
|
31
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
32
|
+
* @example
|
|
33
|
+
* ```ts
|
|
34
|
+
* import { buildSchema } from 'graphql';
|
|
35
|
+
* import { PossibleTypeExtensionsRule } from 'graphql/validation';
|
|
36
|
+
*
|
|
37
|
+
* const invalidSDL = `
|
|
38
|
+
* extend type Missing { name: String } type Query { name: String }
|
|
39
|
+
* `;
|
|
40
|
+
*
|
|
41
|
+
* PossibleTypeExtensionsRule.name; // => 'PossibleTypeExtensionsRule'
|
|
42
|
+
* buildSchema(invalidSDL); // throws an error
|
|
43
|
+
*
|
|
44
|
+
* const validSDL = `
|
|
45
|
+
* type Query { name: String } extend type Query { other: String }
|
|
46
|
+
* `;
|
|
47
|
+
*
|
|
48
|
+
* buildSchema(validSDL); // does not throw
|
|
49
|
+
* ```
|
|
28
50
|
*/
|
|
29
51
|
function PossibleTypeExtensionsRule(context) {
|
|
30
52
|
const schema = context.getSchema();
|
|
@@ -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 { invariant } from '../../jsutils/invariant.mjs';
|
|
@@ -18,6 +19,26 @@ import {
|
|
|
18
19
|
* Possible type extension
|
|
19
20
|
*
|
|
20
21
|
* A type extension is only valid if the type is defined and has the same kind.
|
|
22
|
+
* @param context - The validation context used while checking the document.
|
|
23
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* import { buildSchema } from 'graphql';
|
|
27
|
+
* import { PossibleTypeExtensionsRule } from 'graphql/validation';
|
|
28
|
+
*
|
|
29
|
+
* const invalidSDL = `
|
|
30
|
+
* extend type Missing { name: String } type Query { name: String }
|
|
31
|
+
* `;
|
|
32
|
+
*
|
|
33
|
+
* PossibleTypeExtensionsRule.name; // => 'PossibleTypeExtensionsRule'
|
|
34
|
+
* buildSchema(invalidSDL); // throws an error
|
|
35
|
+
*
|
|
36
|
+
* const validSDL = `
|
|
37
|
+
* type Query { name: String } extend type Query { other: String }
|
|
38
|
+
* `;
|
|
39
|
+
*
|
|
40
|
+
* buildSchema(validSDL); // does not throw
|
|
41
|
+
* ```
|
|
21
42
|
*/
|
|
22
43
|
export function PossibleTypeExtensionsRule(context) {
|
|
23
44
|
const schema = context.getSchema();
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Validation Rules */
|
|
1
2
|
import type { ASTVisitor } from '../../language/visitor';
|
|
2
3
|
import type {
|
|
3
4
|
SDLValidationContext,
|
|
@@ -8,13 +9,38 @@ import type {
|
|
|
8
9
|
*
|
|
9
10
|
* A field or directive is only valid if all required (non-null without a
|
|
10
11
|
* default value) field arguments have been provided.
|
|
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 { ProvidedRequiredArgumentsRule } from 'graphql/validation';
|
|
18
|
+
*
|
|
19
|
+
* const schema = buildSchema(`
|
|
20
|
+
* type Query {
|
|
21
|
+
* field(required: String!): String
|
|
22
|
+
* }
|
|
23
|
+
* `);
|
|
24
|
+
*
|
|
25
|
+
* const invalidDocument = parse(`
|
|
26
|
+
* { field }
|
|
27
|
+
* `);
|
|
28
|
+
* const invalidErrors = validate(schema, invalidDocument, [ProvidedRequiredArgumentsRule]);
|
|
29
|
+
*
|
|
30
|
+
* invalidErrors.length; // => 1
|
|
31
|
+
*
|
|
32
|
+
* const validDocument = parse(`
|
|
33
|
+
* { field(required: "x") }
|
|
34
|
+
* `);
|
|
35
|
+
* const validErrors = validate(schema, validDocument, [ProvidedRequiredArgumentsRule]);
|
|
36
|
+
*
|
|
37
|
+
* validErrors; // => []
|
|
38
|
+
* ```
|
|
11
39
|
*/
|
|
12
40
|
export declare function ProvidedRequiredArgumentsRule(
|
|
13
41
|
context: ValidationContext,
|
|
14
42
|
): ASTVisitor;
|
|
15
|
-
/**
|
|
16
|
-
* @internal
|
|
17
|
-
*/
|
|
43
|
+
/** @internal */
|
|
18
44
|
export declare function ProvidedRequiredArgumentsOnDirectivesRule(
|
|
19
45
|
context: ValidationContext | SDLValidationContext,
|
|
20
46
|
): ASTVisitor;
|
|
@@ -21,11 +21,40 @@ var _definition = require('../../type/definition.js');
|
|
|
21
21
|
|
|
22
22
|
var _directives = require('../../type/directives.js');
|
|
23
23
|
|
|
24
|
+
/** @category Validation Rules */
|
|
25
|
+
|
|
24
26
|
/**
|
|
25
27
|
* Provided required arguments
|
|
26
28
|
*
|
|
27
29
|
* A field or directive is only valid if all required (non-null without a
|
|
28
30
|
* default value) field arguments have been provided.
|
|
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 { ProvidedRequiredArgumentsRule } from 'graphql/validation';
|
|
37
|
+
*
|
|
38
|
+
* const schema = buildSchema(`
|
|
39
|
+
* type Query {
|
|
40
|
+
* field(required: String!): String
|
|
41
|
+
* }
|
|
42
|
+
* `);
|
|
43
|
+
*
|
|
44
|
+
* const invalidDocument = parse(`
|
|
45
|
+
* { field }
|
|
46
|
+
* `);
|
|
47
|
+
* const invalidErrors = validate(schema, invalidDocument, [ProvidedRequiredArgumentsRule]);
|
|
48
|
+
*
|
|
49
|
+
* invalidErrors.length; // => 1
|
|
50
|
+
*
|
|
51
|
+
* const validDocument = parse(`
|
|
52
|
+
* { field(required: "x") }
|
|
53
|
+
* `);
|
|
54
|
+
* const validErrors = validate(schema, validDocument, [ProvidedRequiredArgumentsRule]);
|
|
55
|
+
*
|
|
56
|
+
* validErrors; // => []
|
|
57
|
+
* ```
|
|
29
58
|
*/
|
|
30
59
|
function ProvidedRequiredArgumentsRule(context) {
|
|
31
60
|
return {
|
|
@@ -70,9 +99,7 @@ function ProvidedRequiredArgumentsRule(context) {
|
|
|
70
99
|
},
|
|
71
100
|
};
|
|
72
101
|
}
|
|
73
|
-
/**
|
|
74
|
-
* @internal
|
|
75
|
-
*/
|
|
102
|
+
/** @internal */
|
|
76
103
|
|
|
77
104
|
function ProvidedRequiredArgumentsOnDirectivesRule(context) {
|
|
78
105
|
var _schema$getDirectives;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Validation Rules */
|
|
1
2
|
import { inspect } from '../../jsutils/inspect.mjs';
|
|
2
3
|
import { keyMap } from '../../jsutils/keyMap.mjs';
|
|
3
4
|
import { GraphQLError } from '../../error/GraphQLError.mjs';
|
|
@@ -11,6 +12,33 @@ import { specifiedDirectives } from '../../type/directives.mjs';
|
|
|
11
12
|
*
|
|
12
13
|
* A field or directive is only valid if all required (non-null without a
|
|
13
14
|
* default value) field arguments have been provided.
|
|
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 { ProvidedRequiredArgumentsRule } from 'graphql/validation';
|
|
21
|
+
*
|
|
22
|
+
* const schema = buildSchema(`
|
|
23
|
+
* type Query {
|
|
24
|
+
* field(required: String!): String
|
|
25
|
+
* }
|
|
26
|
+
* `);
|
|
27
|
+
*
|
|
28
|
+
* const invalidDocument = parse(`
|
|
29
|
+
* { field }
|
|
30
|
+
* `);
|
|
31
|
+
* const invalidErrors = validate(schema, invalidDocument, [ProvidedRequiredArgumentsRule]);
|
|
32
|
+
*
|
|
33
|
+
* invalidErrors.length; // => 1
|
|
34
|
+
*
|
|
35
|
+
* const validDocument = parse(`
|
|
36
|
+
* { field(required: "x") }
|
|
37
|
+
* `);
|
|
38
|
+
* const validErrors = validate(schema, validDocument, [ProvidedRequiredArgumentsRule]);
|
|
39
|
+
*
|
|
40
|
+
* validErrors; // => []
|
|
41
|
+
* ```
|
|
14
42
|
*/
|
|
15
43
|
export function ProvidedRequiredArgumentsRule(context) {
|
|
16
44
|
return {
|
|
@@ -52,9 +80,7 @@ export function ProvidedRequiredArgumentsRule(context) {
|
|
|
52
80
|
},
|
|
53
81
|
};
|
|
54
82
|
}
|
|
55
|
-
/**
|
|
56
|
-
* @internal
|
|
57
|
-
*/
|
|
83
|
+
/** @internal */
|
|
58
84
|
|
|
59
85
|
export function ProvidedRequiredArgumentsOnDirectivesRule(context) {
|
|
60
86
|
var _schema$getDirectives;
|
|
@@ -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
|
/**
|
|
@@ -5,5 +6,32 @@ import type { ValidationContext } from '../ValidationContext';
|
|
|
5
6
|
*
|
|
6
7
|
* A GraphQL document is valid only if all leaf fields (fields without
|
|
7
8
|
* sub selections) are of scalar or enum types.
|
|
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 { ScalarLeafsRule } from 'graphql/validation';
|
|
15
|
+
*
|
|
16
|
+
* const schema = buildSchema(`
|
|
17
|
+
* type Query {
|
|
18
|
+
* name: String
|
|
19
|
+
* }
|
|
20
|
+
* `);
|
|
21
|
+
*
|
|
22
|
+
* const invalidDocument = parse(`
|
|
23
|
+
* { name { length } }
|
|
24
|
+
* `);
|
|
25
|
+
* const invalidErrors = validate(schema, invalidDocument, [ScalarLeafsRule]);
|
|
26
|
+
*
|
|
27
|
+
* invalidErrors.length; // => 1
|
|
28
|
+
*
|
|
29
|
+
* const validDocument = parse(`
|
|
30
|
+
* { name }
|
|
31
|
+
* `);
|
|
32
|
+
* const validErrors = validate(schema, validDocument, [ScalarLeafsRule]);
|
|
33
|
+
*
|
|
34
|
+
* validErrors; // => []
|
|
35
|
+
* ```
|
|
8
36
|
*/
|
|
9
37
|
export declare function ScalarLeafsRule(context: ValidationContext): ASTVisitor;
|
|
@@ -11,11 +11,40 @@ var _GraphQLError = require('../../error/GraphQLError.js');
|
|
|
11
11
|
|
|
12
12
|
var _definition = require('../../type/definition.js');
|
|
13
13
|
|
|
14
|
+
/** @category Validation Rules */
|
|
15
|
+
|
|
14
16
|
/**
|
|
15
17
|
* Scalar leafs
|
|
16
18
|
*
|
|
17
19
|
* A GraphQL document is valid only if all leaf fields (fields without
|
|
18
20
|
* sub selections) are of scalar or enum types.
|
|
21
|
+
* @param context - The validation context used while checking the document.
|
|
22
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
23
|
+
* @example
|
|
24
|
+
* ```ts
|
|
25
|
+
* import { buildSchema, parse, validate } from 'graphql';
|
|
26
|
+
* import { ScalarLeafsRule } from 'graphql/validation';
|
|
27
|
+
*
|
|
28
|
+
* const schema = buildSchema(`
|
|
29
|
+
* type Query {
|
|
30
|
+
* name: String
|
|
31
|
+
* }
|
|
32
|
+
* `);
|
|
33
|
+
*
|
|
34
|
+
* const invalidDocument = parse(`
|
|
35
|
+
* { name { length } }
|
|
36
|
+
* `);
|
|
37
|
+
* const invalidErrors = validate(schema, invalidDocument, [ScalarLeafsRule]);
|
|
38
|
+
*
|
|
39
|
+
* invalidErrors.length; // => 1
|
|
40
|
+
*
|
|
41
|
+
* const validDocument = parse(`
|
|
42
|
+
* { name }
|
|
43
|
+
* `);
|
|
44
|
+
* const validErrors = validate(schema, validDocument, [ScalarLeafsRule]);
|
|
45
|
+
*
|
|
46
|
+
* validErrors; // => []
|
|
47
|
+
* ```
|
|
19
48
|
*/
|
|
20
49
|
function ScalarLeafsRule(context) {
|
|
21
50
|
return {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Validation Rules */
|
|
1
2
|
import { inspect } from '../../jsutils/inspect.mjs';
|
|
2
3
|
import { GraphQLError } from '../../error/GraphQLError.mjs';
|
|
3
4
|
import { getNamedType, isLeafType } from '../../type/definition.mjs';
|
|
@@ -7,6 +8,33 @@ import { getNamedType, isLeafType } from '../../type/definition.mjs';
|
|
|
7
8
|
*
|
|
8
9
|
* A GraphQL document is valid only if all leaf fields (fields without
|
|
9
10
|
* sub selections) are of scalar or enum 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 { ScalarLeafsRule } from 'graphql/validation';
|
|
17
|
+
*
|
|
18
|
+
* const schema = buildSchema(`
|
|
19
|
+
* type Query {
|
|
20
|
+
* name: String
|
|
21
|
+
* }
|
|
22
|
+
* `);
|
|
23
|
+
*
|
|
24
|
+
* const invalidDocument = parse(`
|
|
25
|
+
* { name { length } }
|
|
26
|
+
* `);
|
|
27
|
+
* const invalidErrors = validate(schema, invalidDocument, [ScalarLeafsRule]);
|
|
28
|
+
*
|
|
29
|
+
* invalidErrors.length; // => 1
|
|
30
|
+
*
|
|
31
|
+
* const validDocument = parse(`
|
|
32
|
+
* { name }
|
|
33
|
+
* `);
|
|
34
|
+
* const validErrors = validate(schema, validDocument, [ScalarLeafsRule]);
|
|
35
|
+
*
|
|
36
|
+
* validErrors; // => []
|
|
37
|
+
* ```
|
|
10
38
|
*/
|
|
11
39
|
export function ScalarLeafsRule(context) {
|
|
12
40
|
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,38 @@ import type { ValidationContext } from '../ValidationContext';
|
|
|
7
8
|
* that root field is not an introspection field.
|
|
8
9
|
*
|
|
9
10
|
* See https://spec.graphql.org/draft/#sec-Single-root-field
|
|
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 { SingleFieldSubscriptionsRule } from 'graphql/validation';
|
|
17
|
+
*
|
|
18
|
+
* const schema = buildSchema(`
|
|
19
|
+
* type Query {
|
|
20
|
+
* name: String
|
|
21
|
+
* }
|
|
22
|
+
*
|
|
23
|
+
* type Subscription {
|
|
24
|
+
* a: String
|
|
25
|
+
* b: String
|
|
26
|
+
* }
|
|
27
|
+
* `);
|
|
28
|
+
*
|
|
29
|
+
* const invalidDocument = parse(`
|
|
30
|
+
* subscription { a b }
|
|
31
|
+
* `);
|
|
32
|
+
* const invalidErrors = validate(schema, invalidDocument, [SingleFieldSubscriptionsRule]);
|
|
33
|
+
*
|
|
34
|
+
* invalidErrors.length; // => 1
|
|
35
|
+
*
|
|
36
|
+
* const validDocument = parse(`
|
|
37
|
+
* subscription { a }
|
|
38
|
+
* `);
|
|
39
|
+
* const validErrors = validate(schema, validDocument, [SingleFieldSubscriptionsRule]);
|
|
40
|
+
*
|
|
41
|
+
* validErrors; // => []
|
|
42
|
+
* ```
|
|
10
43
|
*/
|
|
11
44
|
export declare function SingleFieldSubscriptionsRule(
|
|
12
45
|
context: ValidationContext,
|
|
@@ -11,6 +11,8 @@ var _kinds = require('../../language/kinds.js');
|
|
|
11
11
|
|
|
12
12
|
var _collectFields = require('../../execution/collectFields.js');
|
|
13
13
|
|
|
14
|
+
/** @category Validation Rules */
|
|
15
|
+
|
|
14
16
|
/**
|
|
15
17
|
* Subscriptions must only include a non-introspection field.
|
|
16
18
|
*
|
|
@@ -18,6 +20,38 @@ var _collectFields = require('../../execution/collectFields.js');
|
|
|
18
20
|
* that root field is not an introspection field.
|
|
19
21
|
*
|
|
20
22
|
* See https://spec.graphql.org/draft/#sec-Single-root-field
|
|
23
|
+
* @param context - The validation context used while checking the document.
|
|
24
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
25
|
+
* @example
|
|
26
|
+
* ```ts
|
|
27
|
+
* import { buildSchema, parse, validate } from 'graphql';
|
|
28
|
+
* import { SingleFieldSubscriptionsRule } from 'graphql/validation';
|
|
29
|
+
*
|
|
30
|
+
* const schema = buildSchema(`
|
|
31
|
+
* type Query {
|
|
32
|
+
* name: String
|
|
33
|
+
* }
|
|
34
|
+
*
|
|
35
|
+
* type Subscription {
|
|
36
|
+
* a: String
|
|
37
|
+
* b: String
|
|
38
|
+
* }
|
|
39
|
+
* `);
|
|
40
|
+
*
|
|
41
|
+
* const invalidDocument = parse(`
|
|
42
|
+
* subscription { a b }
|
|
43
|
+
* `);
|
|
44
|
+
* const invalidErrors = validate(schema, invalidDocument, [SingleFieldSubscriptionsRule]);
|
|
45
|
+
*
|
|
46
|
+
* invalidErrors.length; // => 1
|
|
47
|
+
*
|
|
48
|
+
* const validDocument = parse(`
|
|
49
|
+
* subscription { a }
|
|
50
|
+
* `);
|
|
51
|
+
* const validErrors = validate(schema, validDocument, [SingleFieldSubscriptionsRule]);
|
|
52
|
+
*
|
|
53
|
+
* validErrors; // => []
|
|
54
|
+
* ```
|
|
21
55
|
*/
|
|
22
56
|
function SingleFieldSubscriptionsRule(context) {
|
|
23
57
|
return {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Validation Rules */
|
|
1
2
|
import { GraphQLError } from '../../error/GraphQLError.mjs';
|
|
2
3
|
import { Kind } from '../../language/kinds.mjs';
|
|
3
4
|
import { collectFields } from '../../execution/collectFields.mjs';
|
|
@@ -9,6 +10,38 @@ import { collectFields } from '../../execution/collectFields.mjs';
|
|
|
9
10
|
* that root field is not an introspection field.
|
|
10
11
|
*
|
|
11
12
|
* See https://spec.graphql.org/draft/#sec-Single-root-field
|
|
13
|
+
* @param context - The validation context used while checking the document.
|
|
14
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* import { buildSchema, parse, validate } from 'graphql';
|
|
18
|
+
* import { SingleFieldSubscriptionsRule } from 'graphql/validation';
|
|
19
|
+
*
|
|
20
|
+
* const schema = buildSchema(`
|
|
21
|
+
* type Query {
|
|
22
|
+
* name: String
|
|
23
|
+
* }
|
|
24
|
+
*
|
|
25
|
+
* type Subscription {
|
|
26
|
+
* a: String
|
|
27
|
+
* b: String
|
|
28
|
+
* }
|
|
29
|
+
* `);
|
|
30
|
+
*
|
|
31
|
+
* const invalidDocument = parse(`
|
|
32
|
+
* subscription { a b }
|
|
33
|
+
* `);
|
|
34
|
+
* const invalidErrors = validate(schema, invalidDocument, [SingleFieldSubscriptionsRule]);
|
|
35
|
+
*
|
|
36
|
+
* invalidErrors.length; // => 1
|
|
37
|
+
*
|
|
38
|
+
* const validDocument = parse(`
|
|
39
|
+
* subscription { a }
|
|
40
|
+
* `);
|
|
41
|
+
* const validErrors = validate(schema, validDocument, [SingleFieldSubscriptionsRule]);
|
|
42
|
+
*
|
|
43
|
+
* validErrors; // => []
|
|
44
|
+
* ```
|
|
12
45
|
*/
|
|
13
46
|
export function SingleFieldSubscriptionsRule(context) {
|
|
14
47
|
return {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Validation Rules */
|
|
1
2
|
import type { ASTVisitor } from '../../language/visitor';
|
|
2
3
|
import type { SDLValidationContext } from '../ValidationContext';
|
|
3
4
|
/**
|
|
@@ -5,6 +6,26 @@ import type { SDLValidationContext } from '../ValidationContext';
|
|
|
5
6
|
*
|
|
6
7
|
* A GraphQL Object or Interface type is only valid if all its fields have uniquely named arguments.
|
|
7
8
|
* A GraphQL Directive is only valid if all its arguments 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 } from 'graphql';
|
|
14
|
+
* import { UniqueArgumentDefinitionNamesRule } from 'graphql/validation';
|
|
15
|
+
*
|
|
16
|
+
* const invalidSDL = `
|
|
17
|
+
* type Query { field(arg: String, arg: Int): String }
|
|
18
|
+
* `;
|
|
19
|
+
*
|
|
20
|
+
* UniqueArgumentDefinitionNamesRule.name; // => 'UniqueArgumentDefinitionNamesRule'
|
|
21
|
+
* buildSchema(invalidSDL); // throws an error
|
|
22
|
+
*
|
|
23
|
+
* const validSDL = `
|
|
24
|
+
* type Query { field(arg: String): String }
|
|
25
|
+
* `;
|
|
26
|
+
*
|
|
27
|
+
* buildSchema(validSDL); // does not throw
|
|
28
|
+
* ```
|
|
8
29
|
*/
|
|
9
30
|
export declare function UniqueArgumentDefinitionNamesRule(
|
|
10
31
|
context: SDLValidationContext,
|
|
@@ -9,11 +9,33 @@ 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 argument definition names
|
|
14
16
|
*
|
|
15
17
|
* A GraphQL Object or Interface type is only valid if all its fields have uniquely named arguments.
|
|
16
18
|
* A GraphQL Directive is only valid if all its arguments are uniquely named.
|
|
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 } from 'graphql';
|
|
24
|
+
* import { UniqueArgumentDefinitionNamesRule } from 'graphql/validation';
|
|
25
|
+
*
|
|
26
|
+
* const invalidSDL = `
|
|
27
|
+
* type Query { field(arg: String, arg: Int): String }
|
|
28
|
+
* `;
|
|
29
|
+
*
|
|
30
|
+
* UniqueArgumentDefinitionNamesRule.name; // => 'UniqueArgumentDefinitionNamesRule'
|
|
31
|
+
* buildSchema(invalidSDL); // throws an error
|
|
32
|
+
*
|
|
33
|
+
* const validSDL = `
|
|
34
|
+
* type Query { field(arg: String): String }
|
|
35
|
+
* `;
|
|
36
|
+
*
|
|
37
|
+
* buildSchema(validSDL); // does not throw
|
|
38
|
+
* ```
|
|
17
39
|
*/
|
|
18
40
|
function UniqueArgumentDefinitionNamesRule(context) {
|
|
19
41
|
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
|
|
|
@@ -6,6 +7,26 @@ import { GraphQLError } from '../../error/GraphQLError.mjs';
|
|
|
6
7
|
*
|
|
7
8
|
* A GraphQL Object or Interface type is only valid if all its fields have uniquely named arguments.
|
|
8
9
|
* A GraphQL Directive is only valid if all its arguments are uniquely named.
|
|
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 } from 'graphql';
|
|
15
|
+
* import { UniqueArgumentDefinitionNamesRule } from 'graphql/validation';
|
|
16
|
+
*
|
|
17
|
+
* const invalidSDL = `
|
|
18
|
+
* type Query { field(arg: String, arg: Int): String }
|
|
19
|
+
* `;
|
|
20
|
+
*
|
|
21
|
+
* UniqueArgumentDefinitionNamesRule.name; // => 'UniqueArgumentDefinitionNamesRule'
|
|
22
|
+
* buildSchema(invalidSDL); // throws an error
|
|
23
|
+
*
|
|
24
|
+
* const validSDL = `
|
|
25
|
+
* type Query { field(arg: String): String }
|
|
26
|
+
* `;
|
|
27
|
+
*
|
|
28
|
+
* buildSchema(validSDL); // does not throw
|
|
29
|
+
* ```
|
|
9
30
|
*/
|
|
10
31
|
export function UniqueArgumentDefinitionNamesRule(context) {
|
|
11
32
|
return {
|
|
@@ -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
|
/**
|
|
@@ -7,6 +8,33 @@ import type { ASTValidationContext } from '../ValidationContext';
|
|
|
7
8
|
* uniquely named.
|
|
8
9
|
*
|
|
9
10
|
* See https://spec.graphql.org/draft/#sec-Argument-Names
|
|
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 { UniqueArgumentNamesRule } from 'graphql/validation';
|
|
17
|
+
*
|
|
18
|
+
* const schema = buildSchema(`
|
|
19
|
+
* type Query {
|
|
20
|
+
* field(arg: String): String
|
|
21
|
+
* }
|
|
22
|
+
* `);
|
|
23
|
+
*
|
|
24
|
+
* const invalidDocument = parse(`
|
|
25
|
+
* { field(arg: "1", arg: "2") }
|
|
26
|
+
* `);
|
|
27
|
+
* const invalidErrors = validate(schema, invalidDocument, [UniqueArgumentNamesRule]);
|
|
28
|
+
*
|
|
29
|
+
* invalidErrors.length; // => 1
|
|
30
|
+
*
|
|
31
|
+
* const validDocument = parse(`
|
|
32
|
+
* { field(arg: "1") }
|
|
33
|
+
* `);
|
|
34
|
+
* const validErrors = validate(schema, validDocument, [UniqueArgumentNamesRule]);
|
|
35
|
+
*
|
|
36
|
+
* validErrors; // => []
|
|
37
|
+
* ```
|
|
10
38
|
*/
|
|
11
39
|
export declare function UniqueArgumentNamesRule(
|
|
12
40
|
context: ASTValidationContext,
|
|
@@ -9,6 +9,8 @@ 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 argument names
|
|
14
16
|
*
|
|
@@ -16,6 +18,33 @@ var _GraphQLError = require('../../error/GraphQLError.js');
|
|
|
16
18
|
* uniquely named.
|
|
17
19
|
*
|
|
18
20
|
* See https://spec.graphql.org/draft/#sec-Argument-Names
|
|
21
|
+
* @param context - The validation context used while checking the document.
|
|
22
|
+
* @returns A visitor that reports validation errors for this rule.
|
|
23
|
+
* @example
|
|
24
|
+
* ```ts
|
|
25
|
+
* import { buildSchema, parse, validate } from 'graphql';
|
|
26
|
+
* import { UniqueArgumentNamesRule } from 'graphql/validation';
|
|
27
|
+
*
|
|
28
|
+
* const schema = buildSchema(`
|
|
29
|
+
* type Query {
|
|
30
|
+
* field(arg: String): String
|
|
31
|
+
* }
|
|
32
|
+
* `);
|
|
33
|
+
*
|
|
34
|
+
* const invalidDocument = parse(`
|
|
35
|
+
* { field(arg: "1", arg: "2") }
|
|
36
|
+
* `);
|
|
37
|
+
* const invalidErrors = validate(schema, invalidDocument, [UniqueArgumentNamesRule]);
|
|
38
|
+
*
|
|
39
|
+
* invalidErrors.length; // => 1
|
|
40
|
+
*
|
|
41
|
+
* const validDocument = parse(`
|
|
42
|
+
* { field(arg: "1") }
|
|
43
|
+
* `);
|
|
44
|
+
* const validErrors = validate(schema, validDocument, [UniqueArgumentNamesRule]);
|
|
45
|
+
*
|
|
46
|
+
* validErrors; // => []
|
|
47
|
+
* ```
|
|
19
48
|
*/
|
|
20
49
|
function UniqueArgumentNamesRule(context) {
|
|
21
50
|
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
|
|
|
@@ -8,6 +9,33 @@ import { GraphQLError } from '../../error/GraphQLError.mjs';
|
|
|
8
9
|
* uniquely named.
|
|
9
10
|
*
|
|
10
11
|
* See https://spec.graphql.org/draft/#sec-Argument-Names
|
|
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 { UniqueArgumentNamesRule } from 'graphql/validation';
|
|
18
|
+
*
|
|
19
|
+
* const schema = buildSchema(`
|
|
20
|
+
* type Query {
|
|
21
|
+
* field(arg: String): String
|
|
22
|
+
* }
|
|
23
|
+
* `);
|
|
24
|
+
*
|
|
25
|
+
* const invalidDocument = parse(`
|
|
26
|
+
* { field(arg: "1", arg: "2") }
|
|
27
|
+
* `);
|
|
28
|
+
* const invalidErrors = validate(schema, invalidDocument, [UniqueArgumentNamesRule]);
|
|
29
|
+
*
|
|
30
|
+
* invalidErrors.length; // => 1
|
|
31
|
+
*
|
|
32
|
+
* const validDocument = parse(`
|
|
33
|
+
* { field(arg: "1") }
|
|
34
|
+
* `);
|
|
35
|
+
* const validErrors = validate(schema, validDocument, [UniqueArgumentNamesRule]);
|
|
36
|
+
*
|
|
37
|
+
* validErrors; // => []
|
|
38
|
+
* ```
|
|
11
39
|
*/
|
|
12
40
|
export function UniqueArgumentNamesRule(context) {
|
|
13
41
|
return {
|