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 Directives */
1
2
  import { devAssert } from '../jsutils/devAssert.mjs';
2
3
  import { inspect } from '../jsutils/inspect.mjs';
3
4
  import { instanceOf } from '../jsutils/instanceOf.mjs';
@@ -13,11 +14,45 @@ import {
13
14
  import { GraphQLBoolean, GraphQLString } from './scalars.mjs';
14
15
  /**
15
16
  * Test if the given value is a GraphQL directive.
17
+ * @param directive - Value to inspect.
18
+ * @returns True when the value is a GraphQLDirective.
19
+ * @example
20
+ * ```ts
21
+ * import { DirectiveLocation } from 'graphql/language';
22
+ * import { GraphQLDirective, GraphQLString, isDirective } from 'graphql/type';
23
+ *
24
+ * const upper = new GraphQLDirective({
25
+ * name: 'upper',
26
+ * locations: [DirectiveLocation.FIELD_DEFINITION],
27
+ * });
28
+ *
29
+ * isDirective(upper); // => true
30
+ * isDirective(GraphQLString); // => false
31
+ * ```
16
32
  */
17
33
 
18
34
  export function isDirective(directive) {
19
35
  return instanceOf(directive, GraphQLDirective);
20
36
  }
37
+ /**
38
+ * Returns the value as a GraphQLDirective, or throws if it is not a directive.
39
+ * @param directive - Value to inspect.
40
+ * @returns The value typed as a GraphQLDirective.
41
+ * @example
42
+ * ```ts
43
+ * import { DirectiveLocation } from 'graphql/language';
44
+ * import { assertDirective, GraphQLDirective, GraphQLString } from 'graphql/type';
45
+ *
46
+ * const upper = new GraphQLDirective({
47
+ * name: 'upper',
48
+ * locations: [DirectiveLocation.FIELD_DEFINITION],
49
+ * });
50
+ *
51
+ * assertDirective(upper); // => upper
52
+ * assertDirective(GraphQLString); // throws an error
53
+ * ```
54
+ */
55
+
21
56
  export function assertDirective(directive) {
22
57
  if (!isDirective(directive)) {
23
58
  throw new Error(
@@ -29,7 +64,6 @@ export function assertDirective(directive) {
29
64
  }
30
65
  /**
31
66
  * Custom extensions
32
- *
33
67
  * @remarks
34
68
  * Use a unique identifier name for your extension, for example the name of
35
69
  * your library or project. Do not use a shortened identifier as this increases
@@ -42,6 +76,75 @@ export function assertDirective(directive) {
42
76
  * behavior. Type system creators will usually not create these directly.
43
77
  */
44
78
  export class GraphQLDirective {
79
+ /** The GraphQL name for this schema element. */
80
+
81
+ /** Human-readable description for this schema element, if provided. */
82
+
83
+ /** Locations where this directive may be applied. */
84
+
85
+ /** Arguments accepted by this field or directive. */
86
+
87
+ /** Whether this directive may appear more than once at the same location. */
88
+
89
+ /** Reason this element is deprecated, if one was provided. */
90
+
91
+ /** Extension fields to include in the formatted result. */
92
+
93
+ /** AST node from which this schema element was built, if available. */
94
+
95
+ /** AST extension nodes applied to this schema element. */
96
+
97
+ /**
98
+ * Creates a GraphQLDirective instance.
99
+ * @param config - Configuration describing this object.
100
+ * @example
101
+ * ```ts
102
+ * import { DirectiveLocation, parse } from 'graphql/language';
103
+ * import {
104
+ * GraphQLBoolean,
105
+ * GraphQLDirective,
106
+ * GraphQLInt,
107
+ * GraphQLNonNull,
108
+ * } from 'graphql/type';
109
+ *
110
+ * const document = parse(`
111
+ * directive @cacheControl(maxAge: Int) repeatable on FIELD_DEFINITION
112
+ * extend directive @cacheControl(maxAge: Int) on FIELD_DEFINITION
113
+ * `);
114
+ * const definition = document.definitions[0];
115
+ *
116
+ * const cacheControl = new GraphQLDirective({
117
+ * name: 'cacheControl',
118
+ * description: 'Controls HTTP cache hints for a field.',
119
+ * locations: [DirectiveLocation.FIELD_DEFINITION],
120
+ * args: {
121
+ * inheritMaxAge: {
122
+ * description: 'Inherit the parent cache hint.',
123
+ * type: new GraphQLNonNull(GraphQLBoolean),
124
+ * defaultValue: false,
125
+ * deprecationReason: 'Use maxAge instead.',
126
+ * extensions: { scope: 'cache' },
127
+ * },
128
+ * maxAge: {
129
+ * type: GraphQLInt,
130
+ * astNode: definition.arguments[0],
131
+ * },
132
+ * },
133
+ * isRepeatable: true,
134
+ * deprecationReason: 'Use @cache instead.',
135
+ * extensions: { scope: 'cache' },
136
+ * astNode: definition,
137
+ * extensionASTNodes: [ document.definitions[1] ],
138
+ * });
139
+ *
140
+ * cacheControl.name; // => 'cacheControl'
141
+ * cacheControl.description; // => 'Controls HTTP cache hints for a field.'
142
+ * cacheControl.args[0].name; // => 'inheritMaxAge'
143
+ * cacheControl.args[0].defaultValue; // => false
144
+ * cacheControl.isRepeatable; // => true
145
+ * cacheControl.extensions; // => { scope: 'cache' }
146
+ * ```
147
+ */
45
148
  constructor(config) {
46
149
  var _config$isRepeatable, _config$extensionASTN, _config$args;
47
150
 
@@ -74,10 +177,37 @@ export class GraphQLDirective {
74
177
  );
75
178
  this.args = defineArguments(args);
76
179
  }
180
+ /**
181
+ * Returns the value used by `Object.prototype.toString`.
182
+ * @returns The built-in string tag for this object.
183
+ */
77
184
 
78
185
  get [Symbol.toStringTag]() {
79
186
  return 'GraphQLDirective';
80
187
  }
188
+ /**
189
+ * Returns a normalized configuration object for this object.
190
+ * @returns A configuration object that can be used to recreate this object.
191
+ * @example
192
+ * ```ts
193
+ * import { DirectiveLocation } from 'graphql/language';
194
+ * import { GraphQLDirective, GraphQLString } from 'graphql/type';
195
+ *
196
+ * const tag = new GraphQLDirective({
197
+ * name: 'tag',
198
+ * locations: [DirectiveLocation.FIELD_DEFINITION],
199
+ * args: {
200
+ * name: { type: GraphQLString },
201
+ * },
202
+ * });
203
+ *
204
+ * const config = tag.toConfig();
205
+ * const tagCopy = new GraphQLDirective(config);
206
+ *
207
+ * config.args.name.type; // => GraphQLString
208
+ * tagCopy.args[0].name; // => 'name'
209
+ * ```
210
+ */
81
211
 
82
212
  toConfig() {
83
213
  return {
@@ -92,19 +222,51 @@ export class GraphQLDirective {
92
222
  extensionASTNodes: this.extensionASTNodes,
93
223
  };
94
224
  }
225
+ /**
226
+ * Returns the schema coordinate identifying this directive.
227
+ * @returns The directive schema coordinate.
228
+ * @example
229
+ * ```ts
230
+ * import { DirectiveLocation } from 'graphql/language';
231
+ * import { GraphQLDirective } from 'graphql/type';
232
+ *
233
+ * const tag = new GraphQLDirective({
234
+ * name: 'tag',
235
+ * locations: [DirectiveLocation.FIELD_DEFINITION],
236
+ * });
237
+ *
238
+ * tag.toString(); // => '@tag'
239
+ * ```
240
+ */
95
241
 
96
242
  toString() {
97
243
  return '@' + this.name;
98
244
  }
245
+ /**
246
+ * Returns the JSON representation used when this object is serialized.
247
+ * @returns The JSON-serializable representation.
248
+ * @example
249
+ * ```ts
250
+ * import { DirectiveLocation } from 'graphql/language';
251
+ * import { GraphQLDirective } from 'graphql/type';
252
+ *
253
+ * const tag = new GraphQLDirective({
254
+ * name: 'tag',
255
+ * locations: [DirectiveLocation.FIELD_DEFINITION],
256
+ * });
257
+ *
258
+ * tag.toJSON(); // => '@tag'
259
+ * JSON.stringify({ directive: tag }); // => '{"directive":"@tag"}'
260
+ * ```
261
+ */
99
262
 
100
263
  toJSON() {
101
264
  return this.toString();
102
265
  }
103
266
  }
267
+ /** Configuration used to construct a GraphQLDirective. */
104
268
 
105
- /**
106
- * Used to conditionally include fields or fragments.
107
- */
269
+ /** Used to conditionally include fields or fragments. */
108
270
  export const GraphQLIncludeDirective = new GraphQLDirective({
109
271
  name: 'include',
110
272
  description:
@@ -121,9 +283,7 @@ export const GraphQLIncludeDirective = new GraphQLDirective({
121
283
  },
122
284
  },
123
285
  });
124
- /**
125
- * Used to conditionally skip (exclude) fields or fragments.
126
- */
286
+ /** Used to conditionally skip (exclude) fields or fragments. */
127
287
 
128
288
  export const GraphQLSkipDirective = new GraphQLDirective({
129
289
  name: 'skip',
@@ -141,13 +301,13 @@ export const GraphQLSkipDirective = new GraphQLDirective({
141
301
  },
142
302
  },
143
303
  });
144
- /**
145
- * Constant string used for default reason for a deprecation.
146
- */
304
+ /** Constant string used for default reason for a deprecation. */
147
305
 
148
306
  export const DEFAULT_DEPRECATION_REASON = 'No longer supported';
149
307
  /**
150
308
  * Used to declare element of a GraphQL schema as deprecated.
309
+ *
310
+ * The optional `reason` argument defaults to `DEFAULT_DEPRECATION_REASON`.
151
311
  */
152
312
 
153
313
  export const GraphQLDeprecatedDirective = new GraphQLDirective({
@@ -169,9 +329,7 @@ export const GraphQLDeprecatedDirective = new GraphQLDirective({
169
329
  },
170
330
  },
171
331
  });
172
- /**
173
- * Used to provide a URL for specifying the behavior of custom scalar definitions.
174
- */
332
+ /** Used to provide a URL for specifying the behavior of custom scalar definitions. */
175
333
 
176
334
  export const GraphQLSpecifiedByDirective = new GraphQLDirective({
177
335
  name: 'specifiedBy',
@@ -184,9 +342,7 @@ export const GraphQLSpecifiedByDirective = new GraphQLDirective({
184
342
  },
185
343
  },
186
344
  });
187
- /**
188
- * Used to indicate an Input Object is a OneOf Input Object.
189
- */
345
+ /** Used to indicate an Input Object is a OneOf Input Object. */
190
346
 
191
347
  export const GraphQLOneOfDirective = new GraphQLDirective({
192
348
  name: 'oneOf',
@@ -195,9 +351,7 @@ export const GraphQLOneOfDirective = new GraphQLDirective({
195
351
  locations: [DirectiveLocation.INPUT_OBJECT],
196
352
  args: {},
197
353
  });
198
- /**
199
- * The full list of specified directives.
200
- */
354
+ /** Full list of stable directives specified by GraphQL.js. */
201
355
 
202
356
  export const specifiedDirectives = Object.freeze([
203
357
  GraphQLIncludeDirective,
@@ -206,6 +360,29 @@ export const specifiedDirectives = Object.freeze([
206
360
  GraphQLSpecifiedByDirective,
207
361
  GraphQLOneOfDirective,
208
362
  ]);
363
+ /**
364
+ * Returns true when the directive is one of the directives specified by GraphQL.
365
+ * @param directive - Directive to inspect.
366
+ * @returns True when the directive is specified by GraphQL.
367
+ * @example
368
+ * ```ts
369
+ * import {
370
+ * GraphQLDirective,
371
+ * GraphQLIncludeDirective,
372
+ * isSpecifiedDirective,
373
+ * } from 'graphql/type';
374
+ * import { DirectiveLocation } from 'graphql/language';
375
+ *
376
+ * const customDirective = new GraphQLDirective({
377
+ * name: 'auth',
378
+ * locations: [DirectiveLocation.FIELD_DEFINITION],
379
+ * });
380
+ *
381
+ * isSpecifiedDirective(GraphQLIncludeDirective); // => true
382
+ * isSpecifiedDirective(customDirective); // => false
383
+ * ```
384
+ */
385
+
209
386
  export function isSpecifiedDirective(directive) {
210
387
  return specifiedDirectives.some(({ name }) => name === directive.name);
211
388
  }
package/type/index.d.ts CHANGED
@@ -1,3 +1,9 @@
1
+ /**
2
+ * Create and inspect GraphQL type definitions and schemas.
3
+ *
4
+ * These exports are also available from the root `graphql` package.
5
+ * @packageDocumentation
6
+ */
1
7
  export type { Path as ResponsePath } from '../jsutils/Path';
2
8
  export { isSchema, assertSchema, GraphQLSchema } from './schema';
3
9
  export type { GraphQLSchemaConfig, GraphQLSchemaExtensions } from './schema';
package/type/index.mjs CHANGED
@@ -1,3 +1,9 @@
1
+ /**
2
+ * Create and inspect GraphQL type definitions and schemas.
3
+ *
4
+ * These exports are also available from the root `graphql` package.
5
+ * @packageDocumentation
6
+ */
1
7
  export {
2
8
  // Predicate
3
9
  isSchema, // Assertion
@@ -1,30 +1,66 @@
1
+ /** @category Introspection */
1
2
  import type { GraphQLField, GraphQLNamedType } from './definition';
2
3
  import { GraphQLEnumType, GraphQLObjectType } from './definition';
4
+ /** The introspection type describing a GraphQL schema. */
3
5
  export declare const __Schema: GraphQLObjectType;
6
+ /** The introspection type describing a GraphQL directive. */
4
7
  export declare const __Directive: GraphQLObjectType;
8
+ /** The introspection enum describing directive locations. */
5
9
  export declare const __DirectiveLocation: GraphQLEnumType;
10
+ /** The introspection type describing GraphQL types. */
6
11
  export declare const __Type: GraphQLObjectType;
12
+ /** The introspection type describing object and interface fields. */
7
13
  export declare const __Field: GraphQLObjectType;
14
+ /** The introspection type describing arguments and input fields. */
8
15
  export declare const __InputValue: GraphQLObjectType;
16
+ /** The introspection type describing enum values. */
9
17
  export declare const __EnumValue: GraphQLObjectType;
18
+ /**
19
+ * The introspection enum describing the different kinds of GraphQL types.
20
+ * @category Introspection
21
+ */
10
22
  declare enum TypeKind {
23
+ /** A scalar type. */
11
24
  SCALAR = 'SCALAR',
25
+ /** An object type. */
12
26
  OBJECT = 'OBJECT',
27
+ /** An interface type. */
13
28
  INTERFACE = 'INTERFACE',
29
+ /** A union type. */
14
30
  UNION = 'UNION',
31
+ /** An enum type. */
15
32
  ENUM = 'ENUM',
33
+ /** An input object type. */
16
34
  INPUT_OBJECT = 'INPUT_OBJECT',
35
+ /** A list wrapper type. */
17
36
  LIST = 'LIST',
37
+ /** A non-null wrapper type. */
18
38
  NON_NULL = 'NON_NULL',
19
39
  }
20
40
  export { TypeKind };
41
+ /** The introspection enum describing GraphQL type kinds. */
21
42
  export declare const __TypeKind: GraphQLEnumType;
22
43
  /**
23
44
  * Note that these are GraphQLField and not GraphQLFieldConfig,
24
45
  * so the format for args is different.
25
46
  */
26
47
  export declare const SchemaMetaFieldDef: GraphQLField<unknown, unknown>;
48
+ /** The `__type` meta field definition used by introspection. */
27
49
  export declare const TypeMetaFieldDef: GraphQLField<unknown, unknown>;
50
+ /** The `__typename` meta field definition used by execution and introspection. */
28
51
  export declare const TypeNameMetaFieldDef: GraphQLField<unknown, unknown>;
52
+ /** All introspection types defined by the GraphQL specification. */
29
53
  export declare const introspectionTypes: ReadonlyArray<GraphQLNamedType>;
54
+ /**
55
+ * Returns true when the type is one of the built-in introspection types.
56
+ * @param type - The GraphQL type to inspect.
57
+ * @returns True when the type is one of the built-in introspection types.
58
+ * @example
59
+ * ```ts
60
+ * import { GraphQLString, isIntrospectionType, __Type } from 'graphql/type';
61
+ *
62
+ * isIntrospectionType(__Type); // => true
63
+ * isIntrospectionType(GraphQLString); // => false
64
+ * ```
65
+ */
30
66
  export declare function isIntrospectionType(type: GraphQLNamedType): boolean;
@@ -33,6 +33,9 @@ var _definition = require('./definition.js');
33
33
 
34
34
  var _scalars = require('./scalars.js');
35
35
 
36
+ /** @category Introspection */
37
+
38
+ /** The introspection type describing a GraphQL schema. */
36
39
  const __Schema = new _definition.GraphQLObjectType({
37
40
  name: '__Schema',
38
41
  description:
@@ -91,6 +94,7 @@ const __Schema = new _definition.GraphQLObjectType({
91
94
  },
92
95
  }),
93
96
  });
97
+ /** The introspection type describing a GraphQL directive. */
94
98
 
95
99
  exports.__Schema = __Schema;
96
100
 
@@ -148,6 +152,7 @@ const __Directive = new _definition.GraphQLObjectType({
148
152
  },
149
153
  }),
150
154
  });
155
+ /** The introspection enum describing directive locations. */
151
156
 
152
157
  exports.__Directive = __Directive;
153
158
 
@@ -238,6 +243,7 @@ const __DirectiveLocation = new _definition.GraphQLEnumType({
238
243
  },
239
244
  },
240
245
  });
246
+ /** The introspection type describing GraphQL types. */
241
247
 
242
248
  exports.__DirectiveLocation = __DirectiveLocation;
243
249
 
@@ -406,6 +412,7 @@ const __Type = new _definition.GraphQLObjectType({
406
412
  },
407
413
  }),
408
414
  });
415
+ /** The introspection type describing object and interface fields. */
409
416
 
410
417
  exports.__Type = __Type;
411
418
 
@@ -455,6 +462,7 @@ const __Field = new _definition.GraphQLObjectType({
455
462
  },
456
463
  }),
457
464
  });
465
+ /** The introspection type describing arguments and input fields. */
458
466
 
459
467
  exports.__Field = __Field;
460
468
 
@@ -496,6 +504,7 @@ const __InputValue = new _definition.GraphQLObjectType({
496
504
  },
497
505
  }),
498
506
  });
507
+ /** The introspection type describing enum values. */
499
508
 
500
509
  exports.__InputValue = __InputValue;
501
510
 
@@ -522,6 +531,10 @@ const __EnumValue = new _definition.GraphQLObjectType({
522
531
  },
523
532
  }),
524
533
  });
534
+ /**
535
+ * The introspection enum describing the different kinds of GraphQL types.
536
+ * @category Introspection
537
+ */
525
538
 
526
539
  exports.__EnumValue = __EnumValue;
527
540
  var TypeKind;
@@ -538,6 +551,7 @@ exports.TypeKind = TypeKind;
538
551
  TypeKind['NON_NULL'] = 'NON_NULL';
539
552
  })(TypeKind || (exports.TypeKind = TypeKind = {}));
540
553
 
554
+ /** The introspection enum describing GraphQL type kinds. */
541
555
  const __TypeKind = new _definition.GraphQLEnumType({
542
556
  name: '__TypeKind',
543
557
  description: 'An enum describing what kind of type a given `__Type` is.',
@@ -598,6 +612,8 @@ const SchemaMetaFieldDef = {
598
612
  extensions: Object.create(null),
599
613
  astNode: undefined,
600
614
  };
615
+ /** The `__type` meta field definition used by introspection. */
616
+
601
617
  exports.SchemaMetaFieldDef = SchemaMetaFieldDef;
602
618
  const TypeMetaFieldDef = {
603
619
  name: '__type',
@@ -619,6 +635,8 @@ const TypeMetaFieldDef = {
619
635
  extensions: Object.create(null),
620
636
  astNode: undefined,
621
637
  };
638
+ /** The `__typename` meta field definition used by execution and introspection. */
639
+
622
640
  exports.TypeMetaFieldDef = TypeMetaFieldDef;
623
641
  const TypeNameMetaFieldDef = {
624
642
  name: '__typename',
@@ -630,6 +648,8 @@ const TypeNameMetaFieldDef = {
630
648
  extensions: Object.create(null),
631
649
  astNode: undefined,
632
650
  };
651
+ /** All introspection types defined by the GraphQL specification. */
652
+
633
653
  exports.TypeNameMetaFieldDef = TypeNameMetaFieldDef;
634
654
  const introspectionTypes = Object.freeze([
635
655
  __Schema,
@@ -641,6 +661,19 @@ const introspectionTypes = Object.freeze([
641
661
  __EnumValue,
642
662
  __TypeKind,
643
663
  ]);
664
+ /**
665
+ * Returns true when the type is one of the built-in introspection types.
666
+ * @param type - The GraphQL type to inspect.
667
+ * @returns True when the type is one of the built-in introspection types.
668
+ * @example
669
+ * ```ts
670
+ * import { GraphQLString, isIntrospectionType, __Type } from 'graphql/type';
671
+ *
672
+ * isIntrospectionType(__Type); // => true
673
+ * isIntrospectionType(GraphQLString); // => false
674
+ * ```
675
+ */
676
+
644
677
  exports.introspectionTypes = introspectionTypes;
645
678
 
646
679
  function isIntrospectionType(type) {
@@ -1,3 +1,4 @@
1
+ /** @category Introspection */
1
2
  import { inspect } from '../jsutils/inspect.mjs';
2
3
  import { invariant } from '../jsutils/invariant.mjs';
3
4
  import { DirectiveLocation } from '../language/directiveLocation.mjs';
@@ -19,6 +20,8 @@ import {
19
20
  isUnionType,
20
21
  } from './definition.mjs';
21
22
  import { GraphQLBoolean, GraphQLString } from './scalars.mjs';
23
+
24
+ /** The introspection type describing a GraphQL schema. */
22
25
  export const __Schema = new GraphQLObjectType({
23
26
  name: '__Schema',
24
27
  description:
@@ -73,6 +76,8 @@ export const __Schema = new GraphQLObjectType({
73
76
  },
74
77
  }),
75
78
  });
79
+ /** The introspection type describing a GraphQL directive. */
80
+
76
81
  export const __Directive = new GraphQLObjectType({
77
82
  name: '__Directive',
78
83
  description:
@@ -123,6 +128,8 @@ export const __Directive = new GraphQLObjectType({
123
128
  },
124
129
  }),
125
130
  });
131
+ /** The introspection enum describing directive locations. */
132
+
126
133
  export const __DirectiveLocation = new GraphQLEnumType({
127
134
  name: '__DirectiveLocation',
128
135
  description:
@@ -210,6 +217,8 @@ export const __DirectiveLocation = new GraphQLEnumType({
210
217
  },
211
218
  },
212
219
  });
220
+ /** The introspection type describing GraphQL types. */
221
+
213
222
  export const __Type = new GraphQLObjectType({
214
223
  name: '__Type',
215
224
  description:
@@ -359,6 +368,8 @@ export const __Type = new GraphQLObjectType({
359
368
  },
360
369
  }),
361
370
  });
371
+ /** The introspection type describing object and interface fields. */
372
+
362
373
  export const __Field = new GraphQLObjectType({
363
374
  name: '__Field',
364
375
  description:
@@ -403,6 +414,8 @@ export const __Field = new GraphQLObjectType({
403
414
  },
404
415
  }),
405
416
  });
417
+ /** The introspection type describing arguments and input fields. */
418
+
406
419
  export const __InputValue = new GraphQLObjectType({
407
420
  name: '__InputValue',
408
421
  description:
@@ -441,6 +454,8 @@ export const __InputValue = new GraphQLObjectType({
441
454
  },
442
455
  }),
443
456
  });
457
+ /** The introspection type describing enum values. */
458
+
444
459
  export const __EnumValue = new GraphQLObjectType({
445
460
  name: '__EnumValue',
446
461
  description:
@@ -464,6 +479,11 @@ export const __EnumValue = new GraphQLObjectType({
464
479
  },
465
480
  }),
466
481
  });
482
+ /**
483
+ * The introspection enum describing the different kinds of GraphQL types.
484
+ * @category Introspection
485
+ */
486
+
467
487
  var TypeKind;
468
488
 
469
489
  (function (TypeKind) {
@@ -478,6 +498,8 @@ var TypeKind;
478
498
  })(TypeKind || (TypeKind = {}));
479
499
 
480
500
  export { TypeKind };
501
+ /** The introspection enum describing GraphQL type kinds. */
502
+
481
503
  export const __TypeKind = new GraphQLEnumType({
482
504
  name: '__TypeKind',
483
505
  description: 'An enum describing what kind of type a given `__Type` is.',
@@ -537,6 +559,8 @@ export const SchemaMetaFieldDef = {
537
559
  extensions: Object.create(null),
538
560
  astNode: undefined,
539
561
  };
562
+ /** The `__type` meta field definition used by introspection. */
563
+
540
564
  export const TypeMetaFieldDef = {
541
565
  name: '__type',
542
566
  type: __Type,
@@ -557,6 +581,8 @@ export const TypeMetaFieldDef = {
557
581
  extensions: Object.create(null),
558
582
  astNode: undefined,
559
583
  };
584
+ /** The `__typename` meta field definition used by execution and introspection. */
585
+
560
586
  export const TypeNameMetaFieldDef = {
561
587
  name: '__typename',
562
588
  type: new GraphQLNonNull(GraphQLString),
@@ -567,6 +593,8 @@ export const TypeNameMetaFieldDef = {
567
593
  extensions: Object.create(null),
568
594
  astNode: undefined,
569
595
  };
596
+ /** All introspection types defined by the GraphQL specification. */
597
+
570
598
  export const introspectionTypes = Object.freeze([
571
599
  __Schema,
572
600
  __Directive,
@@ -577,6 +605,19 @@ export const introspectionTypes = Object.freeze([
577
605
  __EnumValue,
578
606
  __TypeKind,
579
607
  ]);
608
+ /**
609
+ * Returns true when the type is one of the built-in introspection types.
610
+ * @param type - The GraphQL type to inspect.
611
+ * @returns True when the type is one of the built-in introspection types.
612
+ * @example
613
+ * ```ts
614
+ * import { GraphQLString, isIntrospectionType, __Type } from 'graphql/type';
615
+ *
616
+ * isIntrospectionType(__Type); // => true
617
+ * isIntrospectionType(GraphQLString); // => false
618
+ * ```
619
+ */
620
+
580
621
  export function isIntrospectionType(type) {
581
622
  return introspectionTypes.some(({ name }) => type.name === name);
582
623
  }
package/type/scalars.d.ts CHANGED
@@ -1,19 +1,46 @@
1
+ /** @category Scalars */
1
2
  import type { GraphQLNamedType } from './definition';
2
3
  import { GraphQLScalarType } from './definition';
3
4
  /**
4
5
  * Maximum possible Int value as per GraphQL Spec (32-bit signed integer).
5
6
  * n.b. This differs from JavaScript's numbers that are IEEE 754 doubles safe up-to 2^53 - 1
6
- * */
7
+ */
7
8
  export declare const GRAPHQL_MAX_INT = 2147483647;
8
9
  /**
9
10
  * Minimum possible Int value as per GraphQL Spec (32-bit signed integer).
10
11
  * n.b. This differs from JavaScript's numbers that are IEEE 754 doubles safe starting at -(2^53 - 1)
11
- * */
12
+ */
12
13
  export declare const GRAPHQL_MIN_INT = -2147483648;
14
+ /** The built-in `Int` scalar type. */
13
15
  export declare const GraphQLInt: GraphQLScalarType<number, number>;
16
+ /** The built-in `Float` scalar type. */
14
17
  export declare const GraphQLFloat: GraphQLScalarType<number, number>;
18
+ /** The built-in `String` scalar type. */
15
19
  export declare const GraphQLString: GraphQLScalarType<string, string>;
20
+ /** The built-in `Boolean` scalar type. */
16
21
  export declare const GraphQLBoolean: GraphQLScalarType<boolean, boolean>;
22
+ /** The built-in `ID` scalar type. */
17
23
  export declare const GraphQLID: GraphQLScalarType<string, string>;
24
+ /** All built-in scalar types defined by the GraphQL specification. */
18
25
  export declare const specifiedScalarTypes: ReadonlyArray<GraphQLScalarType>;
26
+ /**
27
+ * Returns true when the scalar type is one of the scalars specified by GraphQL.
28
+ * @param type - The GraphQL type to inspect.
29
+ * @returns True when the scalar type is one of the scalars specified by GraphQL.
30
+ * @example
31
+ * ```ts
32
+ * import {
33
+ * GraphQLScalarType,
34
+ * GraphQLString,
35
+ * isSpecifiedScalarType,
36
+ * } from 'graphql/type';
37
+ *
38
+ * const DateTime = new GraphQLScalarType({
39
+ * name: 'DateTime',
40
+ * });
41
+ *
42
+ * isSpecifiedScalarType(GraphQLString); // => true
43
+ * isSpecifiedScalarType(DateTime); // => false
44
+ * ```
45
+ */
19
46
  export declare function isSpecifiedScalarType(type: GraphQLNamedType): boolean;