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,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 directive names
|
|
5
6
|
*
|
|
6
7
|
* A GraphQL document is only valid if all defined directives 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 { UniqueDirectiveNamesRule } from 'graphql/validation';
|
|
14
|
+
*
|
|
15
|
+
* const invalidSDL = `
|
|
16
|
+
* directive @tag on FIELD directive @tag on QUERY type Query { name: String }
|
|
17
|
+
* `;
|
|
18
|
+
*
|
|
19
|
+
* UniqueDirectiveNamesRule.name; // => 'UniqueDirectiveNamesRule'
|
|
20
|
+
* buildSchema(invalidSDL); // throws an error
|
|
21
|
+
*
|
|
22
|
+
* const validSDL = `
|
|
23
|
+
* directive @tag on FIELD type Query { name: String }
|
|
24
|
+
* `;
|
|
25
|
+
*
|
|
26
|
+
* buildSchema(validSDL); // does not throw
|
|
27
|
+
* ```
|
|
7
28
|
*/
|
|
8
29
|
export declare function UniqueDirectiveNamesRule(
|
|
9
30
|
context: SDLValidationContext,
|
|
@@ -7,10 +7,32 @@ exports.UniqueDirectiveNamesRule = UniqueDirectiveNamesRule;
|
|
|
7
7
|
|
|
8
8
|
var _GraphQLError = require('../../error/GraphQLError.js');
|
|
9
9
|
|
|
10
|
+
/** @category Validation Rules */
|
|
11
|
+
|
|
10
12
|
/**
|
|
11
13
|
* Unique directive names
|
|
12
14
|
*
|
|
13
15
|
* A GraphQL document is only valid if all defined directives 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 { UniqueDirectiveNamesRule } from 'graphql/validation';
|
|
22
|
+
*
|
|
23
|
+
* const invalidSDL = `
|
|
24
|
+
* directive @tag on FIELD directive @tag on QUERY type Query { name: String }
|
|
25
|
+
* `;
|
|
26
|
+
*
|
|
27
|
+
* UniqueDirectiveNamesRule.name; // => 'UniqueDirectiveNamesRule'
|
|
28
|
+
* buildSchema(invalidSDL); // throws an error
|
|
29
|
+
*
|
|
30
|
+
* const validSDL = `
|
|
31
|
+
* directive @tag on FIELD type Query { name: String }
|
|
32
|
+
* `;
|
|
33
|
+
*
|
|
34
|
+
* buildSchema(validSDL); // does not throw
|
|
35
|
+
* ```
|
|
14
36
|
*/
|
|
15
37
|
function UniqueDirectiveNamesRule(context) {
|
|
16
38
|
const knownDirectiveNames = 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 directive names
|
|
5
6
|
*
|
|
6
7
|
* A GraphQL document is only valid if all defined directives 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 { UniqueDirectiveNamesRule } from 'graphql/validation';
|
|
14
|
+
*
|
|
15
|
+
* const invalidSDL = `
|
|
16
|
+
* directive @tag on FIELD directive @tag on QUERY type Query { name: String }
|
|
17
|
+
* `;
|
|
18
|
+
*
|
|
19
|
+
* UniqueDirectiveNamesRule.name; // => 'UniqueDirectiveNamesRule'
|
|
20
|
+
* buildSchema(invalidSDL); // throws an error
|
|
21
|
+
*
|
|
22
|
+
* const validSDL = `
|
|
23
|
+
* directive @tag on FIELD type Query { name: String }
|
|
24
|
+
* `;
|
|
25
|
+
*
|
|
26
|
+
* buildSchema(validSDL); // does not throw
|
|
27
|
+
* ```
|
|
7
28
|
*/
|
|
8
29
|
export function UniqueDirectiveNamesRule(context) {
|
|
9
30
|
const knownDirectiveNames = 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
|
* a given location are uniquely named.
|
|
11
12
|
*
|
|
12
13
|
* See https://spec.graphql.org/draft/#sec-Directives-Are-Unique-Per-Location
|
|
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 { UniqueDirectivesPerLocationRule } from 'graphql/validation';
|
|
20
|
+
*
|
|
21
|
+
* const schema = buildSchema(`
|
|
22
|
+
* type Query {
|
|
23
|
+
* name: String
|
|
24
|
+
* }
|
|
25
|
+
* `);
|
|
26
|
+
*
|
|
27
|
+
* const invalidDocument = parse(`
|
|
28
|
+
* { name @include(if: true) @include(if: false) }
|
|
29
|
+
* `);
|
|
30
|
+
* const invalidErrors = validate(schema, invalidDocument, [UniqueDirectivesPerLocationRule]);
|
|
31
|
+
*
|
|
32
|
+
* invalidErrors.length; // => 1
|
|
33
|
+
*
|
|
34
|
+
* const validDocument = parse(`
|
|
35
|
+
* { name @include(if: true) }
|
|
36
|
+
* `);
|
|
37
|
+
* const validErrors = validate(schema, validDocument, [UniqueDirectivesPerLocationRule]);
|
|
38
|
+
*
|
|
39
|
+
* validErrors; // => []
|
|
40
|
+
* ```
|
|
13
41
|
*/
|
|
14
42
|
export declare function UniqueDirectivesPerLocationRule(
|
|
15
43
|
context: ValidationContext | SDLValidationContext,
|
|
@@ -13,6 +13,8 @@ var _predicates = require('../../language/predicates.js');
|
|
|
13
13
|
|
|
14
14
|
var _directives = require('../../type/directives.js');
|
|
15
15
|
|
|
16
|
+
/** @category Validation Rules */
|
|
17
|
+
|
|
16
18
|
/**
|
|
17
19
|
* Unique directive names per location
|
|
18
20
|
*
|
|
@@ -20,6 +22,33 @@ var _directives = require('../../type/directives.js');
|
|
|
20
22
|
* a given location are uniquely named.
|
|
21
23
|
*
|
|
22
24
|
* See https://spec.graphql.org/draft/#sec-Directives-Are-Unique-Per-Location
|
|
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 { UniqueDirectivesPerLocationRule } from 'graphql/validation';
|
|
31
|
+
*
|
|
32
|
+
* const schema = buildSchema(`
|
|
33
|
+
* type Query {
|
|
34
|
+
* name: String
|
|
35
|
+
* }
|
|
36
|
+
* `);
|
|
37
|
+
*
|
|
38
|
+
* const invalidDocument = parse(`
|
|
39
|
+
* { name @include(if: true) @include(if: false) }
|
|
40
|
+
* `);
|
|
41
|
+
* const invalidErrors = validate(schema, invalidDocument, [UniqueDirectivesPerLocationRule]);
|
|
42
|
+
*
|
|
43
|
+
* invalidErrors.length; // => 1
|
|
44
|
+
*
|
|
45
|
+
* const validDocument = parse(`
|
|
46
|
+
* { name @include(if: true) }
|
|
47
|
+
* `);
|
|
48
|
+
* const validErrors = validate(schema, validDocument, [UniqueDirectivesPerLocationRule]);
|
|
49
|
+
*
|
|
50
|
+
* validErrors; // => []
|
|
51
|
+
* ```
|
|
23
52
|
*/
|
|
24
53
|
function UniqueDirectivesPerLocationRule(context) {
|
|
25
54
|
const uniqueDirectiveMap = Object.create(null);
|
|
@@ -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 {
|
|
@@ -13,6 +14,33 @@ import { specifiedDirectives } from '../../type/directives.mjs';
|
|
|
13
14
|
* a given location are uniquely named.
|
|
14
15
|
*
|
|
15
16
|
* See https://spec.graphql.org/draft/#sec-Directives-Are-Unique-Per-Location
|
|
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 { UniqueDirectivesPerLocationRule } from 'graphql/validation';
|
|
23
|
+
*
|
|
24
|
+
* const schema = buildSchema(`
|
|
25
|
+
* type Query {
|
|
26
|
+
* name: String
|
|
27
|
+
* }
|
|
28
|
+
* `);
|
|
29
|
+
*
|
|
30
|
+
* const invalidDocument = parse(`
|
|
31
|
+
* { name @include(if: true) @include(if: false) }
|
|
32
|
+
* `);
|
|
33
|
+
* const invalidErrors = validate(schema, invalidDocument, [UniqueDirectivesPerLocationRule]);
|
|
34
|
+
*
|
|
35
|
+
* invalidErrors.length; // => 1
|
|
36
|
+
*
|
|
37
|
+
* const validDocument = parse(`
|
|
38
|
+
* { name @include(if: true) }
|
|
39
|
+
* `);
|
|
40
|
+
* const validErrors = validate(schema, validDocument, [UniqueDirectivesPerLocationRule]);
|
|
41
|
+
*
|
|
42
|
+
* validErrors; // => []
|
|
43
|
+
* ```
|
|
16
44
|
*/
|
|
17
45
|
export function UniqueDirectivesPerLocationRule(context) {
|
|
18
46
|
const uniqueDirectiveMap = 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 enum value names
|
|
5
6
|
*
|
|
6
7
|
* A GraphQL enum type is only valid if all its values 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 } from 'graphql';
|
|
13
|
+
* import { UniqueEnumValueNamesRule } from 'graphql/validation';
|
|
14
|
+
*
|
|
15
|
+
* const invalidSDL = `
|
|
16
|
+
* enum Status { ACTIVE ACTIVE } type Query { status: Status }
|
|
17
|
+
* `;
|
|
18
|
+
*
|
|
19
|
+
* UniqueEnumValueNamesRule.name; // => 'UniqueEnumValueNamesRule'
|
|
20
|
+
* buildSchema(invalidSDL); // throws an error
|
|
21
|
+
*
|
|
22
|
+
* const validSDL = `
|
|
23
|
+
* enum Status { ACTIVE INACTIVE } type Query { status: Status }
|
|
24
|
+
* `;
|
|
25
|
+
*
|
|
26
|
+
* buildSchema(validSDL); // does not throw
|
|
27
|
+
* ```
|
|
7
28
|
*/
|
|
8
29
|
export declare function UniqueEnumValueNamesRule(
|
|
9
30
|
context: SDLValidationContext,
|
|
@@ -9,10 +9,32 @@ var _GraphQLError = require('../../error/GraphQLError.js');
|
|
|
9
9
|
|
|
10
10
|
var _definition = require('../../type/definition.js');
|
|
11
11
|
|
|
12
|
+
/** @category Validation Rules */
|
|
13
|
+
|
|
12
14
|
/**
|
|
13
15
|
* Unique enum value names
|
|
14
16
|
*
|
|
15
17
|
* A GraphQL enum type is only valid if all its values 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 } from 'graphql';
|
|
23
|
+
* import { UniqueEnumValueNamesRule } from 'graphql/validation';
|
|
24
|
+
*
|
|
25
|
+
* const invalidSDL = `
|
|
26
|
+
* enum Status { ACTIVE ACTIVE } type Query { status: Status }
|
|
27
|
+
* `;
|
|
28
|
+
*
|
|
29
|
+
* UniqueEnumValueNamesRule.name; // => 'UniqueEnumValueNamesRule'
|
|
30
|
+
* buildSchema(invalidSDL); // throws an error
|
|
31
|
+
*
|
|
32
|
+
* const validSDL = `
|
|
33
|
+
* enum Status { ACTIVE INACTIVE } type Query { status: Status }
|
|
34
|
+
* `;
|
|
35
|
+
*
|
|
36
|
+
* buildSchema(validSDL); // does not throw
|
|
37
|
+
* ```
|
|
16
38
|
*/
|
|
17
39
|
function UniqueEnumValueNamesRule(context) {
|
|
18
40
|
const schema = context.getSchema();
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Validation Rules */
|
|
1
2
|
import { GraphQLError } from '../../error/GraphQLError.mjs';
|
|
2
3
|
import { isEnumType } from '../../type/definition.mjs';
|
|
3
4
|
|
|
@@ -5,6 +6,26 @@ import { isEnumType } from '../../type/definition.mjs';
|
|
|
5
6
|
* Unique enum value names
|
|
6
7
|
*
|
|
7
8
|
* A GraphQL enum type is only valid if all its values 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 { UniqueEnumValueNamesRule } from 'graphql/validation';
|
|
15
|
+
*
|
|
16
|
+
* const invalidSDL = `
|
|
17
|
+
* enum Status { ACTIVE ACTIVE } type Query { status: Status }
|
|
18
|
+
* `;
|
|
19
|
+
*
|
|
20
|
+
* UniqueEnumValueNamesRule.name; // => 'UniqueEnumValueNamesRule'
|
|
21
|
+
* buildSchema(invalidSDL); // throws an error
|
|
22
|
+
*
|
|
23
|
+
* const validSDL = `
|
|
24
|
+
* enum Status { ACTIVE INACTIVE } type Query { status: Status }
|
|
25
|
+
* `;
|
|
26
|
+
*
|
|
27
|
+
* buildSchema(validSDL); // does not throw
|
|
28
|
+
* ```
|
|
8
29
|
*/
|
|
9
30
|
export function UniqueEnumValueNamesRule(context) {
|
|
10
31
|
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 field definition names
|
|
5
6
|
*
|
|
6
7
|
* A GraphQL complex type is only valid if all its fields 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 } from 'graphql';
|
|
13
|
+
* import { UniqueFieldDefinitionNamesRule } from 'graphql/validation';
|
|
14
|
+
*
|
|
15
|
+
* const invalidSDL = `
|
|
16
|
+
* type Query { name: String name: String }
|
|
17
|
+
* `;
|
|
18
|
+
*
|
|
19
|
+
* UniqueFieldDefinitionNamesRule.name; // => 'UniqueFieldDefinitionNamesRule'
|
|
20
|
+
* buildSchema(invalidSDL); // throws an error
|
|
21
|
+
*
|
|
22
|
+
* const validSDL = `
|
|
23
|
+
* type Query { name: String other: String }
|
|
24
|
+
* `;
|
|
25
|
+
*
|
|
26
|
+
* buildSchema(validSDL); // does not throw
|
|
27
|
+
* ```
|
|
7
28
|
*/
|
|
8
29
|
export declare function UniqueFieldDefinitionNamesRule(
|
|
9
30
|
context: SDLValidationContext,
|
|
@@ -9,10 +9,32 @@ var _GraphQLError = require('../../error/GraphQLError.js');
|
|
|
9
9
|
|
|
10
10
|
var _definition = require('../../type/definition.js');
|
|
11
11
|
|
|
12
|
+
/** @category Validation Rules */
|
|
13
|
+
|
|
12
14
|
/**
|
|
13
15
|
* Unique field definition names
|
|
14
16
|
*
|
|
15
17
|
* A GraphQL complex type is only valid if all its fields 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 } from 'graphql';
|
|
23
|
+
* import { UniqueFieldDefinitionNamesRule } from 'graphql/validation';
|
|
24
|
+
*
|
|
25
|
+
* const invalidSDL = `
|
|
26
|
+
* type Query { name: String name: String }
|
|
27
|
+
* `;
|
|
28
|
+
*
|
|
29
|
+
* UniqueFieldDefinitionNamesRule.name; // => 'UniqueFieldDefinitionNamesRule'
|
|
30
|
+
* buildSchema(invalidSDL); // throws an error
|
|
31
|
+
*
|
|
32
|
+
* const validSDL = `
|
|
33
|
+
* type Query { name: String other: String }
|
|
34
|
+
* `;
|
|
35
|
+
*
|
|
36
|
+
* buildSchema(validSDL); // does not throw
|
|
37
|
+
* ```
|
|
16
38
|
*/
|
|
17
39
|
function UniqueFieldDefinitionNamesRule(context) {
|
|
18
40
|
const schema = context.getSchema();
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Validation Rules */
|
|
1
2
|
import { GraphQLError } from '../../error/GraphQLError.mjs';
|
|
2
3
|
import {
|
|
3
4
|
isInputObjectType,
|
|
@@ -9,6 +10,26 @@ import {
|
|
|
9
10
|
* Unique field definition names
|
|
10
11
|
*
|
|
11
12
|
* A GraphQL complex type is only valid if all its fields are uniquely named.
|
|
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 } from 'graphql';
|
|
18
|
+
* import { UniqueFieldDefinitionNamesRule } from 'graphql/validation';
|
|
19
|
+
*
|
|
20
|
+
* const invalidSDL = `
|
|
21
|
+
* type Query { name: String name: String }
|
|
22
|
+
* `;
|
|
23
|
+
*
|
|
24
|
+
* UniqueFieldDefinitionNamesRule.name; // => 'UniqueFieldDefinitionNamesRule'
|
|
25
|
+
* buildSchema(invalidSDL); // throws an error
|
|
26
|
+
*
|
|
27
|
+
* const validSDL = `
|
|
28
|
+
* type Query { name: String other: String }
|
|
29
|
+
* `;
|
|
30
|
+
*
|
|
31
|
+
* buildSchema(validSDL); // does not throw
|
|
32
|
+
* ```
|
|
12
33
|
*/
|
|
13
34
|
export function UniqueFieldDefinitionNamesRule(context) {
|
|
14
35
|
const schema = context.getSchema();
|
|
@@ -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 fragments have unique names.
|
|
7
8
|
*
|
|
8
9
|
* See https://spec.graphql.org/draft/#sec-Fragment-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 { UniqueFragmentNamesRule } from 'graphql/validation';
|
|
16
|
+
*
|
|
17
|
+
* const schema = buildSchema(`
|
|
18
|
+
* type Query {
|
|
19
|
+
* name: String
|
|
20
|
+
* }
|
|
21
|
+
* `);
|
|
22
|
+
*
|
|
23
|
+
* const invalidDocument = parse(`
|
|
24
|
+
* fragment A on Query { name } fragment A on Query { name } query { ...A }
|
|
25
|
+
* `);
|
|
26
|
+
* const invalidErrors = validate(schema, invalidDocument, [UniqueFragmentNamesRule]);
|
|
27
|
+
*
|
|
28
|
+
* invalidErrors.length; // => 1
|
|
29
|
+
*
|
|
30
|
+
* const validDocument = parse(`
|
|
31
|
+
* fragment A on Query { name } query { ...A }
|
|
32
|
+
* `);
|
|
33
|
+
* const validErrors = validate(schema, validDocument, [UniqueFragmentNamesRule]);
|
|
34
|
+
*
|
|
35
|
+
* validErrors; // => []
|
|
36
|
+
* ```
|
|
9
37
|
*/
|
|
10
38
|
export declare function UniqueFragmentNamesRule(
|
|
11
39
|
context: ASTValidationContext,
|
|
@@ -7,12 +7,41 @@ exports.UniqueFragmentNamesRule = UniqueFragmentNamesRule;
|
|
|
7
7
|
|
|
8
8
|
var _GraphQLError = require('../../error/GraphQLError.js');
|
|
9
9
|
|
|
10
|
+
/** @category Validation Rules */
|
|
11
|
+
|
|
10
12
|
/**
|
|
11
13
|
* Unique fragment names
|
|
12
14
|
*
|
|
13
15
|
* A GraphQL document is only valid if all defined fragments have unique names.
|
|
14
16
|
*
|
|
15
17
|
* See https://spec.graphql.org/draft/#sec-Fragment-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 { UniqueFragmentNamesRule } from 'graphql/validation';
|
|
24
|
+
*
|
|
25
|
+
* const schema = buildSchema(`
|
|
26
|
+
* type Query {
|
|
27
|
+
* name: String
|
|
28
|
+
* }
|
|
29
|
+
* `);
|
|
30
|
+
*
|
|
31
|
+
* const invalidDocument = parse(`
|
|
32
|
+
* fragment A on Query { name } fragment A on Query { name } query { ...A }
|
|
33
|
+
* `);
|
|
34
|
+
* const invalidErrors = validate(schema, invalidDocument, [UniqueFragmentNamesRule]);
|
|
35
|
+
*
|
|
36
|
+
* invalidErrors.length; // => 1
|
|
37
|
+
*
|
|
38
|
+
* const validDocument = parse(`
|
|
39
|
+
* fragment A on Query { name } query { ...A }
|
|
40
|
+
* `);
|
|
41
|
+
* const validErrors = validate(schema, validDocument, [UniqueFragmentNamesRule]);
|
|
42
|
+
*
|
|
43
|
+
* validErrors; // => []
|
|
44
|
+
* ```
|
|
16
45
|
*/
|
|
17
46
|
function UniqueFragmentNamesRule(context) {
|
|
18
47
|
const knownFragmentNames = 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 fragments have unique names.
|
|
7
8
|
*
|
|
8
9
|
* See https://spec.graphql.org/draft/#sec-Fragment-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 { UniqueFragmentNamesRule } from 'graphql/validation';
|
|
16
|
+
*
|
|
17
|
+
* const schema = buildSchema(`
|
|
18
|
+
* type Query {
|
|
19
|
+
* name: String
|
|
20
|
+
* }
|
|
21
|
+
* `);
|
|
22
|
+
*
|
|
23
|
+
* const invalidDocument = parse(`
|
|
24
|
+
* fragment A on Query { name } fragment A on Query { name } query { ...A }
|
|
25
|
+
* `);
|
|
26
|
+
* const invalidErrors = validate(schema, invalidDocument, [UniqueFragmentNamesRule]);
|
|
27
|
+
*
|
|
28
|
+
* invalidErrors.length; // => 1
|
|
29
|
+
*
|
|
30
|
+
* const validDocument = parse(`
|
|
31
|
+
* fragment A on Query { name } query { ...A }
|
|
32
|
+
* `);
|
|
33
|
+
* const validErrors = validate(schema, validDocument, [UniqueFragmentNamesRule]);
|
|
34
|
+
*
|
|
35
|
+
* validErrors; // => []
|
|
36
|
+
* ```
|
|
9
37
|
*/
|
|
10
38
|
export function UniqueFragmentNamesRule(context) {
|
|
11
39
|
const knownFragmentNames = Object.create(null);
|
|
@@ -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,37 @@ import type { ASTValidationContext } from '../ValidationContext';
|
|
|
7
8
|
* uniquely named.
|
|
8
9
|
*
|
|
9
10
|
* See https://spec.graphql.org/draft/#sec-Input-Object-Field-Uniqueness
|
|
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 { UniqueInputFieldNamesRule } from 'graphql/validation';
|
|
17
|
+
*
|
|
18
|
+
* const schema = buildSchema(`
|
|
19
|
+
* input Filter {
|
|
20
|
+
* name: String
|
|
21
|
+
* }
|
|
22
|
+
*
|
|
23
|
+
* type Query {
|
|
24
|
+
* search(filter: Filter): String
|
|
25
|
+
* }
|
|
26
|
+
* `);
|
|
27
|
+
*
|
|
28
|
+
* const invalidDocument = parse(`
|
|
29
|
+
* { search(filter: { name: "a", name: "b" }) }
|
|
30
|
+
* `);
|
|
31
|
+
* const invalidErrors = validate(schema, invalidDocument, [UniqueInputFieldNamesRule]);
|
|
32
|
+
*
|
|
33
|
+
* invalidErrors.length; // => 1
|
|
34
|
+
*
|
|
35
|
+
* const validDocument = parse(`
|
|
36
|
+
* { search(filter: { name: "a" }) }
|
|
37
|
+
* `);
|
|
38
|
+
* const validErrors = validate(schema, validDocument, [UniqueInputFieldNamesRule]);
|
|
39
|
+
*
|
|
40
|
+
* validErrors; // => []
|
|
41
|
+
* ```
|
|
10
42
|
*/
|
|
11
43
|
export declare function UniqueInputFieldNamesRule(
|
|
12
44
|
context: ASTValidationContext,
|
|
@@ -9,6 +9,8 @@ var _invariant = require('../../jsutils/invariant.js');
|
|
|
9
9
|
|
|
10
10
|
var _GraphQLError = require('../../error/GraphQLError.js');
|
|
11
11
|
|
|
12
|
+
/** @category Validation Rules */
|
|
13
|
+
|
|
12
14
|
/**
|
|
13
15
|
* Unique input field names
|
|
14
16
|
*
|
|
@@ -16,6 +18,37 @@ var _GraphQLError = require('../../error/GraphQLError.js');
|
|
|
16
18
|
* uniquely named.
|
|
17
19
|
*
|
|
18
20
|
* See https://spec.graphql.org/draft/#sec-Input-Object-Field-Uniqueness
|
|
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 { UniqueInputFieldNamesRule } from 'graphql/validation';
|
|
27
|
+
*
|
|
28
|
+
* const schema = buildSchema(`
|
|
29
|
+
* input Filter {
|
|
30
|
+
* name: String
|
|
31
|
+
* }
|
|
32
|
+
*
|
|
33
|
+
* type Query {
|
|
34
|
+
* search(filter: Filter): String
|
|
35
|
+
* }
|
|
36
|
+
* `);
|
|
37
|
+
*
|
|
38
|
+
* const invalidDocument = parse(`
|
|
39
|
+
* { search(filter: { name: "a", name: "b" }) }
|
|
40
|
+
* `);
|
|
41
|
+
* const invalidErrors = validate(schema, invalidDocument, [UniqueInputFieldNamesRule]);
|
|
42
|
+
*
|
|
43
|
+
* invalidErrors.length; // => 1
|
|
44
|
+
*
|
|
45
|
+
* const validDocument = parse(`
|
|
46
|
+
* { search(filter: { name: "a" }) }
|
|
47
|
+
* `);
|
|
48
|
+
* const validErrors = validate(schema, validDocument, [UniqueInputFieldNamesRule]);
|
|
49
|
+
*
|
|
50
|
+
* validErrors; // => []
|
|
51
|
+
* ```
|
|
19
52
|
*/
|
|
20
53
|
function UniqueInputFieldNamesRule(context) {
|
|
21
54
|
const knownNameStack = [];
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Validation Rules */
|
|
1
2
|
import { invariant } from '../../jsutils/invariant.mjs';
|
|
2
3
|
import { GraphQLError } from '../../error/GraphQLError.mjs';
|
|
3
4
|
|
|
@@ -8,6 +9,37 @@ import { GraphQLError } from '../../error/GraphQLError.mjs';
|
|
|
8
9
|
* uniquely named.
|
|
9
10
|
*
|
|
10
11
|
* See https://spec.graphql.org/draft/#sec-Input-Object-Field-Uniqueness
|
|
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 { UniqueInputFieldNamesRule } from 'graphql/validation';
|
|
18
|
+
*
|
|
19
|
+
* const schema = buildSchema(`
|
|
20
|
+
* input Filter {
|
|
21
|
+
* name: String
|
|
22
|
+
* }
|
|
23
|
+
*
|
|
24
|
+
* type Query {
|
|
25
|
+
* search(filter: Filter): String
|
|
26
|
+
* }
|
|
27
|
+
* `);
|
|
28
|
+
*
|
|
29
|
+
* const invalidDocument = parse(`
|
|
30
|
+
* { search(filter: { name: "a", name: "b" }) }
|
|
31
|
+
* `);
|
|
32
|
+
* const invalidErrors = validate(schema, invalidDocument, [UniqueInputFieldNamesRule]);
|
|
33
|
+
*
|
|
34
|
+
* invalidErrors.length; // => 1
|
|
35
|
+
*
|
|
36
|
+
* const validDocument = parse(`
|
|
37
|
+
* { search(filter: { name: "a" }) }
|
|
38
|
+
* `);
|
|
39
|
+
* const validErrors = validate(schema, validDocument, [UniqueInputFieldNamesRule]);
|
|
40
|
+
*
|
|
41
|
+
* validErrors; // => []
|
|
42
|
+
* ```
|
|
11
43
|
*/
|
|
12
44
|
export function UniqueInputFieldNamesRule(context) {
|
|
13
45
|
const knownNameStack = [];
|