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.
Files changed (371) hide show
  1. package/error/GraphQLError.d.ts +151 -15
  2. package/error/GraphQLError.js +143 -12
  3. package/error/GraphQLError.mjs +143 -12
  4. package/error/index.d.ts +6 -0
  5. package/error/index.mjs +6 -0
  6. package/error/locatedError.d.ts +20 -0
  7. package/error/locatedError.js +21 -0
  8. package/error/locatedError.mjs +20 -0
  9. package/error/syntaxError.d.ts +15 -0
  10. package/error/syntaxError.js +16 -0
  11. package/error/syntaxError.mjs +15 -0
  12. package/execution/collectFields.js +6 -0
  13. package/execution/collectFields.mjs +6 -0
  14. package/execution/execute.d.ts +211 -12
  15. package/execution/execute.js +214 -23
  16. package/execution/execute.mjs +213 -23
  17. package/execution/index.d.ts +6 -0
  18. package/execution/index.mjs +6 -0
  19. package/execution/mapAsyncIterator.d.ts +2 -0
  20. package/execution/mapAsyncIterator.js +2 -0
  21. package/execution/mapAsyncIterator.mjs +2 -0
  22. package/execution/subscribe.d.ts +195 -5
  23. package/execution/subscribe.js +154 -11
  24. package/execution/subscribe.mjs +153 -11
  25. package/execution/values.d.ts +167 -10
  26. package/execution/values.js +149 -5
  27. package/execution/values.mjs +148 -5
  28. package/graphql.d.ts +163 -41
  29. package/graphql.js +126 -4
  30. package/graphql.mjs +131 -41
  31. package/index.d.ts +11 -17
  32. package/index.mjs +13 -19
  33. package/jsutils/Maybe.d.ts +5 -1
  34. package/jsutils/ObjMap.d.ts +4 -0
  35. package/jsutils/Path.d.ts +30 -0
  36. package/jsutils/Path.js +29 -0
  37. package/jsutils/Path.mjs +29 -0
  38. package/jsutils/PromiseOrValue.d.ts +1 -0
  39. package/jsutils/devAssert.d.ts +1 -0
  40. package/jsutils/devAssert.js +1 -0
  41. package/jsutils/devAssert.mjs +1 -0
  42. package/jsutils/didYouMean.d.ts +4 -1
  43. package/jsutils/didYouMean.js +4 -1
  44. package/jsutils/didYouMean.mjs +4 -1
  45. package/jsutils/groupBy.d.ts +2 -0
  46. package/jsutils/groupBy.js +2 -0
  47. package/jsutils/groupBy.mjs +2 -0
  48. package/jsutils/identityFunc.d.ts +2 -0
  49. package/jsutils/identityFunc.js +2 -0
  50. package/jsutils/identityFunc.mjs +2 -0
  51. package/jsutils/inspect.d.ts +2 -0
  52. package/jsutils/inspect.js +2 -0
  53. package/jsutils/inspect.mjs +2 -0
  54. package/jsutils/instanceOf.d.ts +2 -0
  55. package/jsutils/instanceOf.js +2 -0
  56. package/jsutils/instanceOf.mjs +2 -0
  57. package/jsutils/invariant.d.ts +1 -0
  58. package/jsutils/invariant.js +1 -0
  59. package/jsutils/invariant.mjs +1 -0
  60. package/jsutils/isAsyncIterable.d.ts +2 -0
  61. package/jsutils/isAsyncIterable.js +2 -0
  62. package/jsutils/isAsyncIterable.mjs +2 -0
  63. package/jsutils/isIterableObject.d.ts +6 -5
  64. package/jsutils/isIterableObject.js +6 -5
  65. package/jsutils/isIterableObject.mjs +6 -5
  66. package/jsutils/isObjectLike.d.ts +2 -0
  67. package/jsutils/isObjectLike.js +2 -0
  68. package/jsutils/isObjectLike.mjs +2 -0
  69. package/jsutils/isPromise.d.ts +2 -0
  70. package/jsutils/isPromise.js +2 -0
  71. package/jsutils/isPromise.mjs +2 -0
  72. package/jsutils/keyMap.d.ts +7 -14
  73. package/jsutils/keyMap.js +7 -14
  74. package/jsutils/keyMap.mjs +7 -14
  75. package/jsutils/keyValMap.d.ts +9 -6
  76. package/jsutils/keyValMap.js +9 -6
  77. package/jsutils/keyValMap.mjs +9 -6
  78. package/jsutils/mapValue.d.ts +2 -0
  79. package/jsutils/mapValue.js +2 -0
  80. package/jsutils/mapValue.mjs +2 -0
  81. package/jsutils/memoize3.d.ts +2 -0
  82. package/jsutils/memoize3.js +2 -0
  83. package/jsutils/memoize3.mjs +2 -0
  84. package/jsutils/naturalCompare.d.ts +2 -0
  85. package/jsutils/naturalCompare.js +2 -0
  86. package/jsutils/naturalCompare.mjs +2 -0
  87. package/jsutils/printPathArray.d.ts +2 -0
  88. package/jsutils/printPathArray.js +2 -0
  89. package/jsutils/printPathArray.mjs +2 -0
  90. package/jsutils/promiseForObject.d.ts +2 -0
  91. package/jsutils/promiseForObject.js +2 -0
  92. package/jsutils/promiseForObject.mjs +2 -0
  93. package/jsutils/promiseReduce.d.ts +2 -0
  94. package/jsutils/promiseReduce.js +2 -0
  95. package/jsutils/promiseReduce.mjs +2 -0
  96. package/jsutils/suggestionList.d.ts +2 -0
  97. package/jsutils/suggestionList.js +4 -0
  98. package/jsutils/suggestionList.mjs +4 -0
  99. package/jsutils/toError.d.ts +2 -0
  100. package/jsutils/toError.js +2 -0
  101. package/jsutils/toError.mjs +2 -0
  102. package/jsutils/toObjMap.d.ts +1 -0
  103. package/jsutils/toObjMap.js +1 -0
  104. package/jsutils/toObjMap.mjs +1 -0
  105. package/language/ast.d.ts +412 -54
  106. package/language/ast.js +95 -38
  107. package/language/ast.mjs +95 -38
  108. package/language/blockString.d.ts +1 -3
  109. package/language/blockString.js +1 -3
  110. package/language/blockString.mjs +1 -3
  111. package/language/directiveLocation.d.ts +28 -8
  112. package/language/directiveLocation.js +9 -6
  113. package/language/directiveLocation.mjs +9 -6
  114. package/language/index.d.ts +6 -0
  115. package/language/index.mjs +6 -0
  116. package/language/kinds.d.ts +57 -18
  117. package/language/kinds.js +9 -6
  118. package/language/kinds.mjs +9 -6
  119. package/language/lexer.d.ts +47 -14
  120. package/language/lexer.js +71 -13
  121. package/language/lexer.mjs +70 -13
  122. package/language/location.d.ts +16 -3
  123. package/language/location.js +14 -3
  124. package/language/location.mjs +14 -3
  125. package/language/parser.d.ts +236 -13
  126. package/language/parser.js +224 -0
  127. package/language/parser.mjs +224 -3
  128. package/language/predicates.d.ts +169 -0
  129. package/language/predicates.js +170 -0
  130. package/language/predicates.mjs +180 -0
  131. package/language/printLocation.d.ts +28 -0
  132. package/language/printLocation.js +29 -0
  133. package/language/printLocation.mjs +28 -0
  134. package/language/printString.d.ts +2 -0
  135. package/language/printString.js +5 -1
  136. package/language/printString.mjs +5 -1
  137. package/language/printer.d.ts +12 -0
  138. package/language/printer.js +19 -0
  139. package/language/printer.mjs +18 -0
  140. package/language/schemaCoordinateLexer.d.ts +8 -6
  141. package/language/schemaCoordinateLexer.js +10 -6
  142. package/language/schemaCoordinateLexer.mjs +10 -6
  143. package/language/source.d.ts +28 -0
  144. package/language/source.js +32 -0
  145. package/language/source.mjs +31 -0
  146. package/language/tokenKind.d.ts +30 -3
  147. package/language/tokenKind.js +8 -3
  148. package/language/tokenKind.mjs +8 -3
  149. package/language/visitor.d.ts +200 -72
  150. package/language/visitor.js +122 -50
  151. package/language/visitor.mjs +122 -54
  152. package/package.json +1 -1
  153. package/subscription/index.d.ts +9 -3
  154. package/subscription/index.mjs +9 -3
  155. package/type/assertName.d.ts +18 -1
  156. package/type/assertName.js +19 -1
  157. package/type/assertName.mjs +18 -1
  158. package/type/definition.d.ts +2540 -79
  159. package/type/definition.js +2214 -61
  160. package/type/definition.mjs +2241 -60
  161. package/type/directives.d.ts +193 -18
  162. package/type/directives.js +196 -19
  163. package/type/directives.mjs +196 -19
  164. package/type/index.d.ts +6 -0
  165. package/type/index.mjs +6 -0
  166. package/type/introspection.d.ts +36 -0
  167. package/type/introspection.js +33 -0
  168. package/type/introspection.mjs +41 -0
  169. package/type/scalars.d.ts +29 -2
  170. package/type/scalars.js +37 -2
  171. package/type/scalars.mjs +36 -2
  172. package/type/schema.d.ts +490 -28
  173. package/type/schema.js +484 -26
  174. package/type/schema.mjs +484 -26
  175. package/type/validate.d.ts +31 -0
  176. package/type/validate.js +32 -0
  177. package/type/validate.mjs +31 -0
  178. package/utilities/TypeInfo.d.ts +441 -1
  179. package/utilities/TypeInfo.js +444 -1
  180. package/utilities/TypeInfo.mjs +443 -1
  181. package/utilities/assertValidName.d.ts +27 -2
  182. package/utilities/assertValidName.js +28 -2
  183. package/utilities/assertValidName.mjs +27 -2
  184. package/utilities/astFromValue.d.ts +33 -3
  185. package/utilities/astFromValue.js +36 -3
  186. package/utilities/astFromValue.mjs +35 -3
  187. package/utilities/buildASTSchema.d.ts +65 -6
  188. package/utilities/buildASTSchema.js +65 -6
  189. package/utilities/buildASTSchema.mjs +65 -6
  190. package/utilities/buildClientSchema.d.ts +15 -0
  191. package/utilities/buildClientSchema.js +16 -0
  192. package/utilities/buildClientSchema.mjs +15 -0
  193. package/utilities/coerceInputValue.d.ts +46 -0
  194. package/utilities/coerceInputValue.js +47 -0
  195. package/utilities/coerceInputValue.mjs +46 -0
  196. package/utilities/concatAST.d.ts +12 -0
  197. package/utilities/concatAST.js +13 -0
  198. package/utilities/concatAST.mjs +12 -0
  199. package/utilities/extendSchema.d.ts +56 -3
  200. package/utilities/extendSchema.js +63 -3
  201. package/utilities/extendSchema.mjs +62 -3
  202. package/utilities/findBreakingChanges.d.ts +95 -0
  203. package/utilities/findBreakingChanges.js +68 -0
  204. package/utilities/findBreakingChanges.mjs +70 -0
  205. package/utilities/getIntrospectionQuery.d.ts +132 -0
  206. package/utilities/getIntrospectionQuery.js +41 -0
  207. package/utilities/getIntrospectionQuery.mjs +41 -0
  208. package/utilities/getOperationAST.d.ts +15 -0
  209. package/utilities/getOperationAST.js +16 -0
  210. package/utilities/getOperationAST.mjs +15 -0
  211. package/utilities/getOperationRootType.d.ts +18 -1
  212. package/utilities/getOperationRootType.js +19 -1
  213. package/utilities/getOperationRootType.mjs +18 -1
  214. package/utilities/index.d.ts +7 -0
  215. package/utilities/index.mjs +7 -0
  216. package/utilities/introspectionFromSchema.d.ts +54 -0
  217. package/utilities/introspectionFromSchema.js +55 -0
  218. package/utilities/introspectionFromSchema.mjs +54 -0
  219. package/utilities/lexicographicSortSchema.d.ts +35 -0
  220. package/utilities/lexicographicSortSchema.js +36 -0
  221. package/utilities/lexicographicSortSchema.mjs +35 -0
  222. package/utilities/printSchema.d.ts +63 -0
  223. package/utilities/printSchema.js +66 -0
  224. package/utilities/printSchema.mjs +67 -0
  225. package/utilities/resolveSchemaCoordinate.d.ts +62 -0
  226. package/utilities/resolveSchemaCoordinate.js +64 -0
  227. package/utilities/resolveSchemaCoordinate.mjs +63 -0
  228. package/utilities/separateOperations.d.ts +30 -0
  229. package/utilities/separateOperations.js +31 -0
  230. package/utilities/separateOperations.mjs +30 -0
  231. package/utilities/stripIgnoredCharacters.d.ts +13 -6
  232. package/utilities/stripIgnoredCharacters.js +16 -6
  233. package/utilities/stripIgnoredCharacters.mjs +15 -6
  234. package/utilities/typeComparators.d.ts +84 -0
  235. package/utilities/typeComparators.js +85 -0
  236. package/utilities/typeComparators.mjs +84 -0
  237. package/utilities/typeFromAST.d.ts +86 -0
  238. package/utilities/typeFromAST.js +3 -0
  239. package/utilities/typeFromAST.mjs +3 -0
  240. package/utilities/typedQueryDocumentNode.d.ts +4 -0
  241. package/utilities/valueFromAST.d.ts +38 -0
  242. package/utilities/valueFromAST.js +39 -0
  243. package/utilities/valueFromAST.mjs +38 -0
  244. package/utilities/valueFromASTUntyped.d.ts +15 -2
  245. package/utilities/valueFromASTUntyped.js +16 -2
  246. package/utilities/valueFromASTUntyped.mjs +15 -2
  247. package/validation/ValidationContext.d.ts +399 -0
  248. package/validation/ValidationContext.js +400 -0
  249. package/validation/ValidationContext.mjs +401 -0
  250. package/validation/index.d.ts +6 -0
  251. package/validation/index.mjs +6 -0
  252. package/validation/rules/ExecutableDefinitionsRule.d.ts +28 -0
  253. package/validation/rules/ExecutableDefinitionsRule.js +29 -0
  254. package/validation/rules/ExecutableDefinitionsRule.mjs +28 -0
  255. package/validation/rules/FieldsOnCorrectTypeRule.d.ts +28 -0
  256. package/validation/rules/FieldsOnCorrectTypeRule.js +33 -0
  257. package/validation/rules/FieldsOnCorrectTypeRule.mjs +32 -0
  258. package/validation/rules/FragmentsOnCompositeTypesRule.d.ts +28 -0
  259. package/validation/rules/FragmentsOnCompositeTypesRule.js +29 -0
  260. package/validation/rules/FragmentsOnCompositeTypesRule.mjs +28 -0
  261. package/validation/rules/KnownArgumentNamesRule.d.ts +29 -3
  262. package/validation/rules/KnownArgumentNamesRule.js +30 -3
  263. package/validation/rules/KnownArgumentNamesRule.mjs +29 -3
  264. package/validation/rules/KnownDirectivesRule.d.ts +28 -0
  265. package/validation/rules/KnownDirectivesRule.js +29 -0
  266. package/validation/rules/KnownDirectivesRule.mjs +28 -0
  267. package/validation/rules/KnownFragmentNamesRule.d.ts +28 -0
  268. package/validation/rules/KnownFragmentNamesRule.js +29 -0
  269. package/validation/rules/KnownFragmentNamesRule.mjs +28 -0
  270. package/validation/rules/KnownTypeNamesRule.d.ts +28 -0
  271. package/validation/rules/KnownTypeNamesRule.js +29 -0
  272. package/validation/rules/KnownTypeNamesRule.mjs +28 -0
  273. package/validation/rules/LoneAnonymousOperationRule.d.ts +28 -0
  274. package/validation/rules/LoneAnonymousOperationRule.js +29 -0
  275. package/validation/rules/LoneAnonymousOperationRule.mjs +28 -0
  276. package/validation/rules/LoneSchemaDefinitionRule.d.ts +21 -0
  277. package/validation/rules/LoneSchemaDefinitionRule.js +22 -0
  278. package/validation/rules/LoneSchemaDefinitionRule.mjs +21 -0
  279. package/validation/rules/MaxIntrospectionDepthRule.d.ts +31 -0
  280. package/validation/rules/MaxIntrospectionDepthRule.js +33 -0
  281. package/validation/rules/MaxIntrospectionDepthRule.mjs +34 -0
  282. package/validation/rules/NoFragmentCyclesRule.d.ts +28 -0
  283. package/validation/rules/NoFragmentCyclesRule.js +29 -0
  284. package/validation/rules/NoFragmentCyclesRule.mjs +28 -0
  285. package/validation/rules/NoUndefinedVariablesRule.d.ts +28 -0
  286. package/validation/rules/NoUndefinedVariablesRule.js +29 -0
  287. package/validation/rules/NoUndefinedVariablesRule.mjs +28 -0
  288. package/validation/rules/NoUnusedFragmentsRule.d.ts +28 -0
  289. package/validation/rules/NoUnusedFragmentsRule.js +29 -0
  290. package/validation/rules/NoUnusedFragmentsRule.mjs +28 -0
  291. package/validation/rules/NoUnusedVariablesRule.d.ts +29 -0
  292. package/validation/rules/NoUnusedVariablesRule.js +30 -0
  293. package/validation/rules/NoUnusedVariablesRule.mjs +29 -0
  294. package/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +33 -0
  295. package/validation/rules/OverlappingFieldsCanBeMergedRule.js +45 -6
  296. package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +45 -6
  297. package/validation/rules/PossibleFragmentSpreadsRule.d.ts +36 -0
  298. package/validation/rules/PossibleFragmentSpreadsRule.js +37 -0
  299. package/validation/rules/PossibleFragmentSpreadsRule.mjs +36 -0
  300. package/validation/rules/PossibleTypeExtensionsRule.d.ts +21 -0
  301. package/validation/rules/PossibleTypeExtensionsRule.js +22 -0
  302. package/validation/rules/PossibleTypeExtensionsRule.mjs +21 -0
  303. package/validation/rules/ProvidedRequiredArgumentsRule.d.ts +29 -3
  304. package/validation/rules/ProvidedRequiredArgumentsRule.js +30 -3
  305. package/validation/rules/ProvidedRequiredArgumentsRule.mjs +29 -3
  306. package/validation/rules/ScalarLeafsRule.d.ts +28 -0
  307. package/validation/rules/ScalarLeafsRule.js +29 -0
  308. package/validation/rules/ScalarLeafsRule.mjs +28 -0
  309. package/validation/rules/SingleFieldSubscriptionsRule.d.ts +33 -0
  310. package/validation/rules/SingleFieldSubscriptionsRule.js +34 -0
  311. package/validation/rules/SingleFieldSubscriptionsRule.mjs +33 -0
  312. package/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +21 -0
  313. package/validation/rules/UniqueArgumentDefinitionNamesRule.js +22 -0
  314. package/validation/rules/UniqueArgumentDefinitionNamesRule.mjs +21 -0
  315. package/validation/rules/UniqueArgumentNamesRule.d.ts +28 -0
  316. package/validation/rules/UniqueArgumentNamesRule.js +29 -0
  317. package/validation/rules/UniqueArgumentNamesRule.mjs +28 -0
  318. package/validation/rules/UniqueDirectiveNamesRule.d.ts +21 -0
  319. package/validation/rules/UniqueDirectiveNamesRule.js +22 -0
  320. package/validation/rules/UniqueDirectiveNamesRule.mjs +21 -0
  321. package/validation/rules/UniqueDirectivesPerLocationRule.d.ts +28 -0
  322. package/validation/rules/UniqueDirectivesPerLocationRule.js +29 -0
  323. package/validation/rules/UniqueDirectivesPerLocationRule.mjs +28 -0
  324. package/validation/rules/UniqueEnumValueNamesRule.d.ts +21 -0
  325. package/validation/rules/UniqueEnumValueNamesRule.js +22 -0
  326. package/validation/rules/UniqueEnumValueNamesRule.mjs +21 -0
  327. package/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +21 -0
  328. package/validation/rules/UniqueFieldDefinitionNamesRule.js +22 -0
  329. package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +21 -0
  330. package/validation/rules/UniqueFragmentNamesRule.d.ts +28 -0
  331. package/validation/rules/UniqueFragmentNamesRule.js +29 -0
  332. package/validation/rules/UniqueFragmentNamesRule.mjs +28 -0
  333. package/validation/rules/UniqueInputFieldNamesRule.d.ts +32 -0
  334. package/validation/rules/UniqueInputFieldNamesRule.js +33 -0
  335. package/validation/rules/UniqueInputFieldNamesRule.mjs +32 -0
  336. package/validation/rules/UniqueOperationNamesRule.d.ts +28 -0
  337. package/validation/rules/UniqueOperationNamesRule.js +29 -0
  338. package/validation/rules/UniqueOperationNamesRule.mjs +28 -0
  339. package/validation/rules/UniqueOperationTypesRule.d.ts +21 -0
  340. package/validation/rules/UniqueOperationTypesRule.js +22 -0
  341. package/validation/rules/UniqueOperationTypesRule.mjs +21 -0
  342. package/validation/rules/UniqueTypeNamesRule.d.ts +21 -0
  343. package/validation/rules/UniqueTypeNamesRule.js +22 -0
  344. package/validation/rules/UniqueTypeNamesRule.mjs +21 -0
  345. package/validation/rules/UniqueVariableNamesRule.d.ts +28 -0
  346. package/validation/rules/UniqueVariableNamesRule.js +29 -0
  347. package/validation/rules/UniqueVariableNamesRule.mjs +28 -0
  348. package/validation/rules/ValuesOfCorrectTypeRule.d.ts +28 -0
  349. package/validation/rules/ValuesOfCorrectTypeRule.js +31 -0
  350. package/validation/rules/ValuesOfCorrectTypeRule.mjs +30 -0
  351. package/validation/rules/VariablesAreInputTypesRule.d.ts +32 -0
  352. package/validation/rules/VariablesAreInputTypesRule.js +33 -0
  353. package/validation/rules/VariablesAreInputTypesRule.mjs +32 -0
  354. package/validation/rules/VariablesInAllowedPositionRule.d.ts +28 -0
  355. package/validation/rules/VariablesInAllowedPositionRule.js +35 -1
  356. package/validation/rules/VariablesInAllowedPositionRule.mjs +34 -1
  357. package/validation/rules/custom/NoDeprecatedCustomRule.d.ts +41 -0
  358. package/validation/rules/custom/NoDeprecatedCustomRule.js +42 -0
  359. package/validation/rules/custom/NoDeprecatedCustomRule.mjs +41 -0
  360. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +28 -0
  361. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +29 -0
  362. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs +28 -0
  363. package/validation/specifiedRules.d.ts +2 -3
  364. package/validation/specifiedRules.js +2 -3
  365. package/validation/specifiedRules.mjs +2 -3
  366. package/validation/validate.d.ts +70 -9
  367. package/validation/validate.js +63 -7
  368. package/validation/validate.mjs +63 -7
  369. package/version.d.ts +3 -6
  370. package/version.js +6 -8
  371. 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 {