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
@@ -1,3 +1,4 @@
1
+ /** @category AST Predicates */
1
2
  import type {
2
3
  ASTNode,
3
4
  ConstValueNode,
@@ -12,26 +13,194 @@ import type {
12
13
  TypeSystemExtensionNode,
13
14
  ValueNode,
14
15
  } from './ast';
16
+ /**
17
+ * Returns true when the AST node is a definition node.
18
+ * @param node - The AST node to test.
19
+ * @returns True when the AST node is a definition node.
20
+ * @example
21
+ * ```ts
22
+ * import { parse, isDefinitionNode } from 'graphql/language';
23
+ *
24
+ * const document = parse('{ hello }');
25
+ *
26
+ * isDefinitionNode(document.definitions[0]); // => true
27
+ * isDefinitionNode(document); // => false
28
+ * ```
29
+ */
15
30
  export declare function isDefinitionNode(node: ASTNode): node is DefinitionNode;
31
+ /**
32
+ * Returns true when the AST node is an executable definition node.
33
+ * @param node - The AST node to test.
34
+ * @returns True when the AST node is an executable definition node.
35
+ * @example
36
+ * ```ts
37
+ * import { parse, isExecutableDefinitionNode } from 'graphql/language';
38
+ *
39
+ * const query = parse('{ hello }');
40
+ * const schema = parse('type Query { hello: String }');
41
+ *
42
+ * isExecutableDefinitionNode(query.definitions[0]); // => true
43
+ * isExecutableDefinitionNode(schema.definitions[0]); // => false
44
+ * ```
45
+ */
16
46
  export declare function isExecutableDefinitionNode(
17
47
  node: ASTNode,
18
48
  ): node is ExecutableDefinitionNode;
49
+ /**
50
+ * Returns true when the AST node is a selection node.
51
+ * @param node - The AST node to test.
52
+ * @returns True when the AST node is a selection node.
53
+ * @example
54
+ * ```ts
55
+ * import { Kind, isSelectionNode } from 'graphql/language';
56
+ *
57
+ * const field = { kind: Kind.FIELD, name: { kind: Kind.NAME, value: 'hello' } };
58
+ * const document = { kind: Kind.DOCUMENT, definitions: [] };
59
+ *
60
+ * isSelectionNode(field); // => true
61
+ * isSelectionNode(document); // => false
62
+ * ```
63
+ */
19
64
  export declare function isSelectionNode(node: ASTNode): node is SelectionNode;
65
+ /**
66
+ * Returns true when the AST node is a value node.
67
+ * @param node - The AST node to test.
68
+ * @returns True when the AST node is a value node.
69
+ * @example
70
+ * ```ts
71
+ * import { parseType, parseValue, isValueNode } from 'graphql/language';
72
+ *
73
+ * const value = parseValue('[42]');
74
+ * const type = parseType('[String!]');
75
+ *
76
+ * isValueNode(value); // => true
77
+ * isValueNode(type); // => false
78
+ * ```
79
+ */
20
80
  export declare function isValueNode(node: ASTNode): node is ValueNode;
81
+ /**
82
+ * Returns true when the AST node is a constant value node.
83
+ * @param node - The AST node to test.
84
+ * @returns True when the AST node is a constant value node.
85
+ * @example
86
+ * ```ts
87
+ * import { parseConstValue, parseValue, isConstValueNode } from 'graphql/language';
88
+ *
89
+ * const value = parseConstValue('[42]');
90
+ * const variable = parseValue('$id');
91
+ *
92
+ * isConstValueNode(value); // => true
93
+ * isConstValueNode(variable); // => false
94
+ * ```
95
+ */
21
96
  export declare function isConstValueNode(node: ASTNode): node is ConstValueNode;
97
+ /**
98
+ * Returns true when the AST node is a type node.
99
+ * @param node - The AST node to test.
100
+ * @returns True when the AST node is a type node.
101
+ * @example
102
+ * ```ts
103
+ * import { parseType, parseValue, isTypeNode } from 'graphql/language';
104
+ *
105
+ * const type = parseType('[String!]');
106
+ * const value = parseValue('[42]');
107
+ *
108
+ * isTypeNode(type); // => true
109
+ * isTypeNode(value); // => false
110
+ * ```
111
+ */
22
112
  export declare function isTypeNode(node: ASTNode): node is TypeNode;
113
+ /**
114
+ * Returns true when the AST node is a type system definition node.
115
+ * @param node - The AST node to test.
116
+ * @returns True when the AST node is a type system definition node.
117
+ * @example
118
+ * ```ts
119
+ * import { parse, isTypeSystemDefinitionNode } from 'graphql/language';
120
+ *
121
+ * const schema = parse('type Query { hello: String }');
122
+ * const query = parse('{ hello }');
123
+ *
124
+ * isTypeSystemDefinitionNode(schema.definitions[0]); // => true
125
+ * isTypeSystemDefinitionNode(query.definitions[0]); // => false
126
+ * ```
127
+ */
23
128
  export declare function isTypeSystemDefinitionNode(
24
129
  node: ASTNode,
25
130
  ): node is TypeSystemDefinitionNode;
131
+ /**
132
+ * Returns true when the AST node is a type definition node.
133
+ * @param node - The AST node to test.
134
+ * @returns True when the AST node is a type definition node.
135
+ * @example
136
+ * ```ts
137
+ * import { parse, isTypeDefinitionNode } from 'graphql/language';
138
+ *
139
+ * const typeDefinition = parse('type Query { hello: String }');
140
+ * const directiveDefinition = parse('directive @cache on FIELD');
141
+ *
142
+ * isTypeDefinitionNode(typeDefinition.definitions[0]); // => true
143
+ * isTypeDefinitionNode(directiveDefinition.definitions[0]); // => false
144
+ * ```
145
+ */
26
146
  export declare function isTypeDefinitionNode(
27
147
  node: ASTNode,
28
148
  ): node is TypeDefinitionNode;
149
+ /**
150
+ * Returns true when the AST node is a type system extension node.
151
+ * @param node - The AST node to test.
152
+ * @returns True when the AST node is a type system extension node.
153
+ * @example
154
+ * ```ts
155
+ * import { parse, isTypeSystemExtensionNode } from 'graphql/language';
156
+ *
157
+ * const extension = parse('extend type Query { hello: String }');
158
+ * const definition = parse('type Query { hello: String }');
159
+ *
160
+ * isTypeSystemExtensionNode(extension.definitions[0]); // => true
161
+ * isTypeSystemExtensionNode(definition.definitions[0]); // => false
162
+ * ```
163
+ */
29
164
  export declare function isTypeSystemExtensionNode(
30
165
  node: ASTNode,
31
166
  ): node is TypeSystemExtensionNode;
167
+ /**
168
+ * Returns true when the AST node is a type extension node.
169
+ * @param node - The AST node to test.
170
+ * @returns True when the AST node is a type extension node.
171
+ * @example
172
+ * ```ts
173
+ * import { parse, isTypeExtensionNode } from 'graphql/language';
174
+ *
175
+ * const extension = parse('extend type Query { hello: String }');
176
+ * const schemaExtension = parse('extend schema { query: Query }');
177
+ *
178
+ * isTypeExtensionNode(extension.definitions[0]); // => true
179
+ * isTypeExtensionNode(schemaExtension.definitions[0]); // => false
180
+ * ```
181
+ */
32
182
  export declare function isTypeExtensionNode(
33
183
  node: ASTNode,
34
184
  ): node is TypeExtensionNode;
185
+ /**
186
+ * Returns true when the AST node is a schema coordinate node.
187
+ * @param node - The AST node to test.
188
+ * @returns True when the AST node is a schema coordinate node.
189
+ * @example
190
+ * ```ts
191
+ * import {
192
+ * parse,
193
+ * parseSchemaCoordinate,
194
+ * isSchemaCoordinateNode,
195
+ * } from 'graphql/language';
196
+ *
197
+ * const coordinate = parseSchemaCoordinate('Query.hero');
198
+ * const document = parse('{ hero }');
199
+ *
200
+ * isSchemaCoordinateNode(coordinate); // => true
201
+ * isSchemaCoordinateNode(document); // => false
202
+ * ```
203
+ */
35
204
  export declare function isSchemaCoordinateNode(
36
205
  node: ASTNode,
37
206
  ): node is SchemaCoordinateNode;
@@ -17,6 +17,22 @@ exports.isValueNode = isValueNode;
17
17
 
18
18
  var _kinds = require('./kinds.js');
19
19
 
20
+ /** @category AST Predicates */
21
+
22
+ /**
23
+ * Returns true when the AST node is a definition node.
24
+ * @param node - The AST node to test.
25
+ * @returns True when the AST node is a definition node.
26
+ * @example
27
+ * ```ts
28
+ * import { parse, isDefinitionNode } from 'graphql/language';
29
+ *
30
+ * const document = parse('{ hello }');
31
+ *
32
+ * isDefinitionNode(document.definitions[0]); // => true
33
+ * isDefinitionNode(document); // => false
34
+ * ```
35
+ */
20
36
  function isDefinitionNode(node) {
21
37
  return (
22
38
  isExecutableDefinitionNode(node) ||
@@ -24,6 +40,21 @@ function isDefinitionNode(node) {
24
40
  isTypeSystemExtensionNode(node)
25
41
  );
26
42
  }
43
+ /**
44
+ * Returns true when the AST node is an executable definition node.
45
+ * @param node - The AST node to test.
46
+ * @returns True when the AST node is an executable definition node.
47
+ * @example
48
+ * ```ts
49
+ * import { parse, isExecutableDefinitionNode } from 'graphql/language';
50
+ *
51
+ * const query = parse('{ hello }');
52
+ * const schema = parse('type Query { hello: String }');
53
+ *
54
+ * isExecutableDefinitionNode(query.definitions[0]); // => true
55
+ * isExecutableDefinitionNode(schema.definitions[0]); // => false
56
+ * ```
57
+ */
27
58
 
28
59
  function isExecutableDefinitionNode(node) {
29
60
  return (
@@ -31,6 +62,21 @@ function isExecutableDefinitionNode(node) {
31
62
  node.kind === _kinds.Kind.FRAGMENT_DEFINITION
32
63
  );
33
64
  }
65
+ /**
66
+ * Returns true when the AST node is a selection node.
67
+ * @param node - The AST node to test.
68
+ * @returns True when the AST node is a selection node.
69
+ * @example
70
+ * ```ts
71
+ * import { Kind, isSelectionNode } from 'graphql/language';
72
+ *
73
+ * const field = { kind: Kind.FIELD, name: { kind: Kind.NAME, value: 'hello' } };
74
+ * const document = { kind: Kind.DOCUMENT, definitions: [] };
75
+ *
76
+ * isSelectionNode(field); // => true
77
+ * isSelectionNode(document); // => false
78
+ * ```
79
+ */
34
80
 
35
81
  function isSelectionNode(node) {
36
82
  return (
@@ -39,6 +85,21 @@ function isSelectionNode(node) {
39
85
  node.kind === _kinds.Kind.INLINE_FRAGMENT
40
86
  );
41
87
  }
88
+ /**
89
+ * Returns true when the AST node is a value node.
90
+ * @param node - The AST node to test.
91
+ * @returns True when the AST node is a value node.
92
+ * @example
93
+ * ```ts
94
+ * import { parseType, parseValue, isValueNode } from 'graphql/language';
95
+ *
96
+ * const value = parseValue('[42]');
97
+ * const type = parseType('[String!]');
98
+ *
99
+ * isValueNode(value); // => true
100
+ * isValueNode(type); // => false
101
+ * ```
102
+ */
42
103
 
43
104
  function isValueNode(node) {
44
105
  return (
@@ -53,6 +114,21 @@ function isValueNode(node) {
53
114
  node.kind === _kinds.Kind.OBJECT
54
115
  );
55
116
  }
117
+ /**
118
+ * Returns true when the AST node is a constant value node.
119
+ * @param node - The AST node to test.
120
+ * @returns True when the AST node is a constant value node.
121
+ * @example
122
+ * ```ts
123
+ * import { parseConstValue, parseValue, isConstValueNode } from 'graphql/language';
124
+ *
125
+ * const value = parseConstValue('[42]');
126
+ * const variable = parseValue('$id');
127
+ *
128
+ * isConstValueNode(value); // => true
129
+ * isConstValueNode(variable); // => false
130
+ * ```
131
+ */
56
132
 
57
133
  function isConstValueNode(node) {
58
134
  return (
@@ -64,6 +140,21 @@ function isConstValueNode(node) {
64
140
  : node.kind !== _kinds.Kind.VARIABLE)
65
141
  );
66
142
  }
143
+ /**
144
+ * Returns true when the AST node is a type node.
145
+ * @param node - The AST node to test.
146
+ * @returns True when the AST node is a type node.
147
+ * @example
148
+ * ```ts
149
+ * import { parseType, parseValue, isTypeNode } from 'graphql/language';
150
+ *
151
+ * const type = parseType('[String!]');
152
+ * const value = parseValue('[42]');
153
+ *
154
+ * isTypeNode(type); // => true
155
+ * isTypeNode(value); // => false
156
+ * ```
157
+ */
67
158
 
68
159
  function isTypeNode(node) {
69
160
  return (
@@ -72,6 +163,21 @@ function isTypeNode(node) {
72
163
  node.kind === _kinds.Kind.NON_NULL_TYPE
73
164
  );
74
165
  }
166
+ /**
167
+ * Returns true when the AST node is a type system definition node.
168
+ * @param node - The AST node to test.
169
+ * @returns True when the AST node is a type system definition node.
170
+ * @example
171
+ * ```ts
172
+ * import { parse, isTypeSystemDefinitionNode } from 'graphql/language';
173
+ *
174
+ * const schema = parse('type Query { hello: String }');
175
+ * const query = parse('{ hello }');
176
+ *
177
+ * isTypeSystemDefinitionNode(schema.definitions[0]); // => true
178
+ * isTypeSystemDefinitionNode(query.definitions[0]); // => false
179
+ * ```
180
+ */
75
181
 
76
182
  function isTypeSystemDefinitionNode(node) {
77
183
  return (
@@ -80,6 +186,21 @@ function isTypeSystemDefinitionNode(node) {
80
186
  node.kind === _kinds.Kind.DIRECTIVE_DEFINITION
81
187
  );
82
188
  }
189
+ /**
190
+ * Returns true when the AST node is a type definition node.
191
+ * @param node - The AST node to test.
192
+ * @returns True when the AST node is a type definition node.
193
+ * @example
194
+ * ```ts
195
+ * import { parse, isTypeDefinitionNode } from 'graphql/language';
196
+ *
197
+ * const typeDefinition = parse('type Query { hello: String }');
198
+ * const directiveDefinition = parse('directive @cache on FIELD');
199
+ *
200
+ * isTypeDefinitionNode(typeDefinition.definitions[0]); // => true
201
+ * isTypeDefinitionNode(directiveDefinition.definitions[0]); // => false
202
+ * ```
203
+ */
83
204
 
84
205
  function isTypeDefinitionNode(node) {
85
206
  return (
@@ -91,6 +212,21 @@ function isTypeDefinitionNode(node) {
91
212
  node.kind === _kinds.Kind.INPUT_OBJECT_TYPE_DEFINITION
92
213
  );
93
214
  }
215
+ /**
216
+ * Returns true when the AST node is a type system extension node.
217
+ * @param node - The AST node to test.
218
+ * @returns True when the AST node is a type system extension node.
219
+ * @example
220
+ * ```ts
221
+ * import { parse, isTypeSystemExtensionNode } from 'graphql/language';
222
+ *
223
+ * const extension = parse('extend type Query { hello: String }');
224
+ * const definition = parse('type Query { hello: String }');
225
+ *
226
+ * isTypeSystemExtensionNode(extension.definitions[0]); // => true
227
+ * isTypeSystemExtensionNode(definition.definitions[0]); // => false
228
+ * ```
229
+ */
94
230
 
95
231
  function isTypeSystemExtensionNode(node) {
96
232
  return (
@@ -99,6 +235,21 @@ function isTypeSystemExtensionNode(node) {
99
235
  isTypeExtensionNode(node)
100
236
  );
101
237
  }
238
+ /**
239
+ * Returns true when the AST node is a type extension node.
240
+ * @param node - The AST node to test.
241
+ * @returns True when the AST node is a type extension node.
242
+ * @example
243
+ * ```ts
244
+ * import { parse, isTypeExtensionNode } from 'graphql/language';
245
+ *
246
+ * const extension = parse('extend type Query { hello: String }');
247
+ * const schemaExtension = parse('extend schema { query: Query }');
248
+ *
249
+ * isTypeExtensionNode(extension.definitions[0]); // => true
250
+ * isTypeExtensionNode(schemaExtension.definitions[0]); // => false
251
+ * ```
252
+ */
102
253
 
103
254
  function isTypeExtensionNode(node) {
104
255
  return (
@@ -110,6 +261,25 @@ function isTypeExtensionNode(node) {
110
261
  node.kind === _kinds.Kind.INPUT_OBJECT_TYPE_EXTENSION
111
262
  );
112
263
  }
264
+ /**
265
+ * Returns true when the AST node is a schema coordinate node.
266
+ * @param node - The AST node to test.
267
+ * @returns True when the AST node is a schema coordinate node.
268
+ * @example
269
+ * ```ts
270
+ * import {
271
+ * parse,
272
+ * parseSchemaCoordinate,
273
+ * isSchemaCoordinateNode,
274
+ * } from 'graphql/language';
275
+ *
276
+ * const coordinate = parseSchemaCoordinate('Query.hero');
277
+ * const document = parse('{ hero }');
278
+ *
279
+ * isSchemaCoordinateNode(coordinate); // => true
280
+ * isSchemaCoordinateNode(document); // => false
281
+ * ```
282
+ */
113
283
 
114
284
  function isSchemaCoordinateNode(node) {
115
285
  return (
@@ -1,4 +1,20 @@
1
+ /** @category AST Predicates */
1
2
  import { Kind } from './kinds.mjs';
3
+ /**
4
+ * Returns true when the AST node is a definition node.
5
+ * @param node - The AST node to test.
6
+ * @returns True when the AST node is a definition node.
7
+ * @example
8
+ * ```ts
9
+ * import { parse, isDefinitionNode } from 'graphql/language';
10
+ *
11
+ * const document = parse('{ hello }');
12
+ *
13
+ * isDefinitionNode(document.definitions[0]); // => true
14
+ * isDefinitionNode(document); // => false
15
+ * ```
16
+ */
17
+
2
18
  export function isDefinitionNode(node) {
3
19
  return (
4
20
  isExecutableDefinitionNode(node) ||
@@ -6,12 +22,44 @@ export function isDefinitionNode(node) {
6
22
  isTypeSystemExtensionNode(node)
7
23
  );
8
24
  }
25
+ /**
26
+ * Returns true when the AST node is an executable definition node.
27
+ * @param node - The AST node to test.
28
+ * @returns True when the AST node is an executable definition node.
29
+ * @example
30
+ * ```ts
31
+ * import { parse, isExecutableDefinitionNode } from 'graphql/language';
32
+ *
33
+ * const query = parse('{ hello }');
34
+ * const schema = parse('type Query { hello: String }');
35
+ *
36
+ * isExecutableDefinitionNode(query.definitions[0]); // => true
37
+ * isExecutableDefinitionNode(schema.definitions[0]); // => false
38
+ * ```
39
+ */
40
+
9
41
  export function isExecutableDefinitionNode(node) {
10
42
  return (
11
43
  node.kind === Kind.OPERATION_DEFINITION ||
12
44
  node.kind === Kind.FRAGMENT_DEFINITION
13
45
  );
14
46
  }
47
+ /**
48
+ * Returns true when the AST node is a selection node.
49
+ * @param node - The AST node to test.
50
+ * @returns True when the AST node is a selection node.
51
+ * @example
52
+ * ```ts
53
+ * import { Kind, isSelectionNode } from 'graphql/language';
54
+ *
55
+ * const field = { kind: Kind.FIELD, name: { kind: Kind.NAME, value: 'hello' } };
56
+ * const document = { kind: Kind.DOCUMENT, definitions: [] };
57
+ *
58
+ * isSelectionNode(field); // => true
59
+ * isSelectionNode(document); // => false
60
+ * ```
61
+ */
62
+
15
63
  export function isSelectionNode(node) {
16
64
  return (
17
65
  node.kind === Kind.FIELD ||
@@ -19,6 +67,22 @@ export function isSelectionNode(node) {
19
67
  node.kind === Kind.INLINE_FRAGMENT
20
68
  );
21
69
  }
70
+ /**
71
+ * Returns true when the AST node is a value node.
72
+ * @param node - The AST node to test.
73
+ * @returns True when the AST node is a value node.
74
+ * @example
75
+ * ```ts
76
+ * import { parseType, parseValue, isValueNode } from 'graphql/language';
77
+ *
78
+ * const value = parseValue('[42]');
79
+ * const type = parseType('[String!]');
80
+ *
81
+ * isValueNode(value); // => true
82
+ * isValueNode(type); // => false
83
+ * ```
84
+ */
85
+
22
86
  export function isValueNode(node) {
23
87
  return (
24
88
  node.kind === Kind.VARIABLE ||
@@ -32,6 +96,22 @@ export function isValueNode(node) {
32
96
  node.kind === Kind.OBJECT
33
97
  );
34
98
  }
99
+ /**
100
+ * Returns true when the AST node is a constant value node.
101
+ * @param node - The AST node to test.
102
+ * @returns True when the AST node is a constant value node.
103
+ * @example
104
+ * ```ts
105
+ * import { parseConstValue, parseValue, isConstValueNode } from 'graphql/language';
106
+ *
107
+ * const value = parseConstValue('[42]');
108
+ * const variable = parseValue('$id');
109
+ *
110
+ * isConstValueNode(value); // => true
111
+ * isConstValueNode(variable); // => false
112
+ * ```
113
+ */
114
+
35
115
  export function isConstValueNode(node) {
36
116
  return (
37
117
  isValueNode(node) &&
@@ -42,6 +122,22 @@ export function isConstValueNode(node) {
42
122
  : node.kind !== Kind.VARIABLE)
43
123
  );
44
124
  }
125
+ /**
126
+ * Returns true when the AST node is a type node.
127
+ * @param node - The AST node to test.
128
+ * @returns True when the AST node is a type node.
129
+ * @example
130
+ * ```ts
131
+ * import { parseType, parseValue, isTypeNode } from 'graphql/language';
132
+ *
133
+ * const type = parseType('[String!]');
134
+ * const value = parseValue('[42]');
135
+ *
136
+ * isTypeNode(type); // => true
137
+ * isTypeNode(value); // => false
138
+ * ```
139
+ */
140
+
45
141
  export function isTypeNode(node) {
46
142
  return (
47
143
  node.kind === Kind.NAMED_TYPE ||
@@ -49,6 +145,22 @@ export function isTypeNode(node) {
49
145
  node.kind === Kind.NON_NULL_TYPE
50
146
  );
51
147
  }
148
+ /**
149
+ * Returns true when the AST node is a type system definition node.
150
+ * @param node - The AST node to test.
151
+ * @returns True when the AST node is a type system definition node.
152
+ * @example
153
+ * ```ts
154
+ * import { parse, isTypeSystemDefinitionNode } from 'graphql/language';
155
+ *
156
+ * const schema = parse('type Query { hello: String }');
157
+ * const query = parse('{ hello }');
158
+ *
159
+ * isTypeSystemDefinitionNode(schema.definitions[0]); // => true
160
+ * isTypeSystemDefinitionNode(query.definitions[0]); // => false
161
+ * ```
162
+ */
163
+
52
164
  export function isTypeSystemDefinitionNode(node) {
53
165
  return (
54
166
  node.kind === Kind.SCHEMA_DEFINITION ||
@@ -56,6 +168,22 @@ export function isTypeSystemDefinitionNode(node) {
56
168
  node.kind === Kind.DIRECTIVE_DEFINITION
57
169
  );
58
170
  }
171
+ /**
172
+ * Returns true when the AST node is a type definition node.
173
+ * @param node - The AST node to test.
174
+ * @returns True when the AST node is a type definition node.
175
+ * @example
176
+ * ```ts
177
+ * import { parse, isTypeDefinitionNode } from 'graphql/language';
178
+ *
179
+ * const typeDefinition = parse('type Query { hello: String }');
180
+ * const directiveDefinition = parse('directive @cache on FIELD');
181
+ *
182
+ * isTypeDefinitionNode(typeDefinition.definitions[0]); // => true
183
+ * isTypeDefinitionNode(directiveDefinition.definitions[0]); // => false
184
+ * ```
185
+ */
186
+
59
187
  export function isTypeDefinitionNode(node) {
60
188
  return (
61
189
  node.kind === Kind.SCALAR_TYPE_DEFINITION ||
@@ -66,6 +194,22 @@ export function isTypeDefinitionNode(node) {
66
194
  node.kind === Kind.INPUT_OBJECT_TYPE_DEFINITION
67
195
  );
68
196
  }
197
+ /**
198
+ * Returns true when the AST node is a type system extension node.
199
+ * @param node - The AST node to test.
200
+ * @returns True when the AST node is a type system extension node.
201
+ * @example
202
+ * ```ts
203
+ * import { parse, isTypeSystemExtensionNode } from 'graphql/language';
204
+ *
205
+ * const extension = parse('extend type Query { hello: String }');
206
+ * const definition = parse('type Query { hello: String }');
207
+ *
208
+ * isTypeSystemExtensionNode(extension.definitions[0]); // => true
209
+ * isTypeSystemExtensionNode(definition.definitions[0]); // => false
210
+ * ```
211
+ */
212
+
69
213
  export function isTypeSystemExtensionNode(node) {
70
214
  return (
71
215
  node.kind === Kind.SCHEMA_EXTENSION ||
@@ -73,6 +217,22 @@ export function isTypeSystemExtensionNode(node) {
73
217
  isTypeExtensionNode(node)
74
218
  );
75
219
  }
220
+ /**
221
+ * Returns true when the AST node is a type extension node.
222
+ * @param node - The AST node to test.
223
+ * @returns True when the AST node is a type extension node.
224
+ * @example
225
+ * ```ts
226
+ * import { parse, isTypeExtensionNode } from 'graphql/language';
227
+ *
228
+ * const extension = parse('extend type Query { hello: String }');
229
+ * const schemaExtension = parse('extend schema { query: Query }');
230
+ *
231
+ * isTypeExtensionNode(extension.definitions[0]); // => true
232
+ * isTypeExtensionNode(schemaExtension.definitions[0]); // => false
233
+ * ```
234
+ */
235
+
76
236
  export function isTypeExtensionNode(node) {
77
237
  return (
78
238
  node.kind === Kind.SCALAR_TYPE_EXTENSION ||
@@ -83,6 +243,26 @@ export function isTypeExtensionNode(node) {
83
243
  node.kind === Kind.INPUT_OBJECT_TYPE_EXTENSION
84
244
  );
85
245
  }
246
+ /**
247
+ * Returns true when the AST node is a schema coordinate node.
248
+ * @param node - The AST node to test.
249
+ * @returns True when the AST node is a schema coordinate node.
250
+ * @example
251
+ * ```ts
252
+ * import {
253
+ * parse,
254
+ * parseSchemaCoordinate,
255
+ * isSchemaCoordinateNode,
256
+ * } from 'graphql/language';
257
+ *
258
+ * const coordinate = parseSchemaCoordinate('Query.hero');
259
+ * const document = parse('{ hero }');
260
+ *
261
+ * isSchemaCoordinateNode(coordinate); // => true
262
+ * isSchemaCoordinateNode(document); // => false
263
+ * ```
264
+ */
265
+
86
266
  export function isSchemaCoordinateNode(node) {
87
267
  return (
88
268
  node.kind === Kind.TYPE_COORDINATE ||