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,12 +1,11 @@
1
+ /** @category Values */
1
2
  import type { Maybe } from '../jsutils/Maybe';
2
3
  import type { ValueNode } from '../language/ast';
3
4
  import type { GraphQLInputType } from '../type/definition';
4
5
  /**
5
6
  * Produces a GraphQL Value AST given a JavaScript object.
6
7
  * Function will match JavaScript/JSON values to GraphQL AST schema format
7
- * by using suggested GraphQLInputType. For example:
8
- *
9
- * astFromValue("value", GraphQLString)
8
+ * by using suggested GraphQLInputType.
10
9
  *
11
10
  * A GraphQL type must be provided, which will be used to interpret different
12
11
  * JavaScript values.
@@ -20,7 +19,38 @@ import type { GraphQLInputType } from '../type/definition';
20
19
  * | Number | Int / Float |
21
20
  * | Unknown | Enum Value |
22
21
  * | null | NullValue |
22
+ * @param value - Runtime value to convert.
23
+ * @param type - The GraphQL type to inspect.
24
+ * @returns A GraphQL value AST for the provided JavaScript value, or null when no literal can represent it.
25
+ * @example
26
+ * ```ts
27
+ * import { print } from 'graphql/language';
28
+ * import {
29
+ * GraphQLInputObjectType,
30
+ * GraphQLInt,
31
+ * GraphQLList,
32
+ * GraphQLNonNull,
33
+ * GraphQLString,
34
+ * } from 'graphql/type';
35
+ * import { astFromValue } from 'graphql/utilities';
36
+ *
37
+ * const ReviewInput = new GraphQLInputObjectType({
38
+ * name: 'ReviewInput',
39
+ * fields: {
40
+ * stars: { type: new GraphQLNonNull(GraphQLInt) },
41
+ * tags: { type: new GraphQLList(GraphQLString) },
42
+ * },
43
+ * });
44
+ *
45
+ * const valueNode = astFromValue(
46
+ * { stars: 5, tags: ['featured', 'verified'] },
47
+ * ReviewInput,
48
+ * );
23
49
  *
50
+ * print(valueNode); // => '{ stars: 5, tags: ["featured", "verified"] }'
51
+ * astFromValue(undefined, GraphQLString); // => null
52
+ * astFromValue(null, new GraphQLNonNull(GraphQLString)); // => null
53
+ * ```
24
54
  */
25
55
  export declare function astFromValue(
26
56
  value: unknown,
@@ -19,12 +19,12 @@ var _definition = require('../type/definition.js');
19
19
 
20
20
  var _scalars = require('../type/scalars.js');
21
21
 
22
+ /** @category Values */
23
+
22
24
  /**
23
25
  * Produces a GraphQL Value AST given a JavaScript object.
24
26
  * Function will match JavaScript/JSON values to GraphQL AST schema format
25
- * by using suggested GraphQLInputType. For example:
26
- *
27
- * astFromValue("value", GraphQLString)
27
+ * by using suggested GraphQLInputType.
28
28
  *
29
29
  * A GraphQL type must be provided, which will be used to interpret different
30
30
  * JavaScript values.
@@ -38,7 +38,38 @@ var _scalars = require('../type/scalars.js');
38
38
  * | Number | Int / Float |
39
39
  * | Unknown | Enum Value |
40
40
  * | null | NullValue |
41
+ * @param value - Runtime value to convert.
42
+ * @param type - The GraphQL type to inspect.
43
+ * @returns A GraphQL value AST for the provided JavaScript value, or null when no literal can represent it.
44
+ * @example
45
+ * ```ts
46
+ * import { print } from 'graphql/language';
47
+ * import {
48
+ * GraphQLInputObjectType,
49
+ * GraphQLInt,
50
+ * GraphQLList,
51
+ * GraphQLNonNull,
52
+ * GraphQLString,
53
+ * } from 'graphql/type';
54
+ * import { astFromValue } from 'graphql/utilities';
55
+ *
56
+ * const ReviewInput = new GraphQLInputObjectType({
57
+ * name: 'ReviewInput',
58
+ * fields: {
59
+ * stars: { type: new GraphQLNonNull(GraphQLInt) },
60
+ * tags: { type: new GraphQLList(GraphQLString) },
61
+ * },
62
+ * });
41
63
  *
64
+ * const valueNode = astFromValue(
65
+ * { stars: 5, tags: ['featured', 'verified'] },
66
+ * ReviewInput,
67
+ * );
68
+ *
69
+ * print(valueNode); // => '{ stars: 5, tags: ["featured", "verified"] }'
70
+ * astFromValue(undefined, GraphQLString); // => null
71
+ * astFromValue(null, new GraphQLNonNull(GraphQLString)); // => null
72
+ * ```
42
73
  */
43
74
  function astFromValue(value, type) {
44
75
  if ((0, _definition.isNonNullType)(type)) {
@@ -185,6 +216,8 @@ function astFromValue(value, type) {
185
216
  * IntValue:
186
217
  * - NegativeSign? 0
187
218
  * - NegativeSign? NonZeroDigit ( Digit+ )?
219
+ *
220
+ * @internal
188
221
  */
189
222
 
190
223
  const integerStringRegExp = /^-?(?:0|[1-9][0-9]*)$/;
@@ -1,3 +1,4 @@
1
+ /** @category Values */
1
2
  import { inspect } from '../jsutils/inspect.mjs';
2
3
  import { invariant } from '../jsutils/invariant.mjs';
3
4
  import { isIterableObject } from '../jsutils/isIterableObject.mjs';
@@ -14,9 +15,7 @@ import { GraphQLID } from '../type/scalars.mjs';
14
15
  /**
15
16
  * Produces a GraphQL Value AST given a JavaScript object.
16
17
  * Function will match JavaScript/JSON values to GraphQL AST schema format
17
- * by using suggested GraphQLInputType. For example:
18
- *
19
- * astFromValue("value", GraphQLString)
18
+ * by using suggested GraphQLInputType.
20
19
  *
21
20
  * A GraphQL type must be provided, which will be used to interpret different
22
21
  * JavaScript values.
@@ -30,7 +29,38 @@ import { GraphQLID } from '../type/scalars.mjs';
30
29
  * | Number | Int / Float |
31
30
  * | Unknown | Enum Value |
32
31
  * | null | NullValue |
32
+ * @param value - Runtime value to convert.
33
+ * @param type - The GraphQL type to inspect.
34
+ * @returns A GraphQL value AST for the provided JavaScript value, or null when no literal can represent it.
35
+ * @example
36
+ * ```ts
37
+ * import { print } from 'graphql/language';
38
+ * import {
39
+ * GraphQLInputObjectType,
40
+ * GraphQLInt,
41
+ * GraphQLList,
42
+ * GraphQLNonNull,
43
+ * GraphQLString,
44
+ * } from 'graphql/type';
45
+ * import { astFromValue } from 'graphql/utilities';
46
+ *
47
+ * const ReviewInput = new GraphQLInputObjectType({
48
+ * name: 'ReviewInput',
49
+ * fields: {
50
+ * stars: { type: new GraphQLNonNull(GraphQLInt) },
51
+ * tags: { type: new GraphQLList(GraphQLString) },
52
+ * },
53
+ * });
33
54
  *
55
+ * const valueNode = astFromValue(
56
+ * { stars: 5, tags: ['featured', 'verified'] },
57
+ * ReviewInput,
58
+ * );
59
+ *
60
+ * print(valueNode); // => '{ stars: 5, tags: ["featured", "verified"] }'
61
+ * astFromValue(undefined, GraphQLString); // => null
62
+ * astFromValue(null, new GraphQLNonNull(GraphQLString)); // => null
63
+ * ```
34
64
  */
35
65
 
36
66
  export function astFromValue(value, type) {
@@ -172,6 +202,8 @@ export function astFromValue(value, type) {
172
202
  * IntValue:
173
203
  * - NegativeSign? 0
174
204
  * - NegativeSign? NonZeroDigit ( Digit+ )?
205
+ *
206
+ * @internal
175
207
  */
176
208
 
177
209
  const integerStringRegExp = /^-?(?:0|[1-9][0-9]*)$/;
@@ -1,8 +1,10 @@
1
+ /** @category Schema Construction */
1
2
  import type { DocumentNode } from '../language/ast';
2
3
  import type { ParseOptions } from '../language/parser';
3
4
  import type { Source } from '../language/source';
4
5
  import type { GraphQLSchemaValidationOptions } from '../type/schema';
5
6
  import { GraphQLSchema } from '../type/schema';
7
+ /** Options used when building a schema from SDL or a parsed SDL document. */
6
8
  export interface BuildSchemaOptions extends GraphQLSchemaValidationOptions {
7
9
  /**
8
10
  * Set to true to assume the SDL is valid.
@@ -12,22 +14,79 @@ export interface BuildSchemaOptions extends GraphQLSchemaValidationOptions {
12
14
  assumeValidSDL?: boolean;
13
15
  }
14
16
  /**
15
- * This takes the ast of a schema document produced by the parse function in
16
- * src/language/parser.js.
17
+ * Builds a GraphQLSchema from a parsed schema definition language document.
17
18
  *
18
19
  * If no schema definition is provided, then it will look for types named Query,
19
20
  * Mutation and Subscription.
20
21
  *
21
- * Given that AST it constructs a GraphQLSchema. The resulting schema
22
- * has no resolve methods, so execution will use default resolvers.
22
+ * The resulting schema has no resolver functions, so execution will use the
23
+ * default field resolver.
24
+ * @param documentAST - The parsed GraphQL document AST.
25
+ * @param options - Optional configuration for this operation.
26
+ * @returns The schema built from the provided SDL document.
27
+ * @example
28
+ * ```ts
29
+ * // Build a schema from a valid parsed SDL document.
30
+ * import { parse } from 'graphql/language';
31
+ * import { buildASTSchema } from 'graphql/utilities';
32
+ *
33
+ * const document = parse('type Query { hello: String }');
34
+ * const schema = buildASTSchema(document);
35
+ *
36
+ * schema.getQueryType().name; // => 'Query'
37
+ * ```
38
+ * @example
39
+ * ```ts
40
+ * // This variant uses validation options when the SDL references unknown types.
41
+ * import { parse } from 'graphql/language';
42
+ * import { buildASTSchema } from 'graphql/utilities';
43
+ *
44
+ * const document = parse('type Query { broken: MissingType }');
45
+ *
46
+ * buildASTSchema(document); // throws an error
47
+ * buildASTSchema(document, {
48
+ * assumeValid: true,
49
+ * assumeValidSDL: true,
50
+ * }); // does not throw
51
+ * ```
23
52
  */
24
53
  export declare function buildASTSchema(
25
54
  documentAST: DocumentNode,
26
55
  options?: BuildSchemaOptions,
27
56
  ): GraphQLSchema;
28
57
  /**
29
- * A helper function to build a GraphQLSchema directly from a source
30
- * document.
58
+ * Builds a GraphQLSchema directly from a schema definition language source.
59
+ * @param source - The GraphQL source text or source object.
60
+ * @param options - Optional configuration for this operation.
61
+ * @returns The schema built from the provided SDL document.
62
+ * @example
63
+ * ```ts
64
+ * // Build a schema from SDL source using the default options.
65
+ * import { buildSchema } from 'graphql/utilities';
66
+ *
67
+ * const schema = buildSchema('type Query { hello: String }');
68
+ *
69
+ * schema.getQueryType().name; // => 'Query'
70
+ * ```
71
+ * @example
72
+ * ```ts
73
+ * // This variant enables parser options and omits source locations.
74
+ * import { buildSchema } from 'graphql/utilities';
75
+ *
76
+ * const schema = buildSchema(
77
+ * 'directive @tag on FIELD_DEFINITION\n' +
78
+ * 'directive @compose @tag on FIELD_DEFINITION',
79
+ * {
80
+ * experimentalDirectivesOnDirectiveDefinitions: true,
81
+ * noLocation: true,
82
+ * },
83
+ * );
84
+ *
85
+ * const directive = schema.getDirective('compose');
86
+ *
87
+ * directive.name; // => 'compose'
88
+ * directive.astNode.loc; // => undefined
89
+ * ```
31
90
  */
32
91
  export declare function buildSchema(
33
92
  source: string | Source,
@@ -20,15 +20,44 @@ var _validate = require('../validation/validate.js');
20
20
 
21
21
  var _extendSchema = require('./extendSchema.js');
22
22
 
23
+ /** @category Schema Construction */
24
+
23
25
  /**
24
- * This takes the ast of a schema document produced by the parse function in
25
- * src/language/parser.js.
26
+ * Builds a GraphQLSchema from a parsed schema definition language document.
26
27
  *
27
28
  * If no schema definition is provided, then it will look for types named Query,
28
29
  * Mutation and Subscription.
29
30
  *
30
- * Given that AST it constructs a GraphQLSchema. The resulting schema
31
- * has no resolve methods, so execution will use default resolvers.
31
+ * The resulting schema has no resolver functions, so execution will use the
32
+ * default field resolver.
33
+ * @param documentAST - The parsed GraphQL document AST.
34
+ * @param options - Optional configuration for this operation.
35
+ * @returns The schema built from the provided SDL document.
36
+ * @example
37
+ * ```ts
38
+ * // Build a schema from a valid parsed SDL document.
39
+ * import { parse } from 'graphql/language';
40
+ * import { buildASTSchema } from 'graphql/utilities';
41
+ *
42
+ * const document = parse('type Query { hello: String }');
43
+ * const schema = buildASTSchema(document);
44
+ *
45
+ * schema.getQueryType().name; // => 'Query'
46
+ * ```
47
+ * @example
48
+ * ```ts
49
+ * // This variant uses validation options when the SDL references unknown types.
50
+ * import { parse } from 'graphql/language';
51
+ * import { buildASTSchema } from 'graphql/utilities';
52
+ *
53
+ * const document = parse('type Query { broken: MissingType }');
54
+ *
55
+ * buildASTSchema(document); // throws an error
56
+ * buildASTSchema(document, {
57
+ * assumeValid: true,
58
+ * assumeValidSDL: true,
59
+ * }); // does not throw
60
+ * ```
32
61
  */
33
62
  function buildASTSchema(documentAST, options) {
34
63
  (documentAST != null && documentAST.kind === _kinds.Kind.DOCUMENT) ||
@@ -93,8 +122,38 @@ function buildASTSchema(documentAST, options) {
93
122
  return new _schema.GraphQLSchema({ ...config, directives });
94
123
  }
95
124
  /**
96
- * A helper function to build a GraphQLSchema directly from a source
97
- * document.
125
+ * Builds a GraphQLSchema directly from a schema definition language source.
126
+ * @param source - The GraphQL source text or source object.
127
+ * @param options - Optional configuration for this operation.
128
+ * @returns The schema built from the provided SDL document.
129
+ * @example
130
+ * ```ts
131
+ * // Build a schema from SDL source using the default options.
132
+ * import { buildSchema } from 'graphql/utilities';
133
+ *
134
+ * const schema = buildSchema('type Query { hello: String }');
135
+ *
136
+ * schema.getQueryType().name; // => 'Query'
137
+ * ```
138
+ * @example
139
+ * ```ts
140
+ * // This variant enables parser options and omits source locations.
141
+ * import { buildSchema } from 'graphql/utilities';
142
+ *
143
+ * const schema = buildSchema(
144
+ * 'directive @tag on FIELD_DEFINITION\n' +
145
+ * 'directive @compose @tag on FIELD_DEFINITION',
146
+ * {
147
+ * experimentalDirectivesOnDirectiveDefinitions: true,
148
+ * noLocation: true,
149
+ * },
150
+ * );
151
+ *
152
+ * const directive = schema.getDirective('compose');
153
+ *
154
+ * directive.name; // => 'compose'
155
+ * directive.astNode.loc; // => undefined
156
+ * ```
98
157
  */
99
158
 
100
159
  function buildSchema(source, options) {
@@ -1,3 +1,4 @@
1
+ /** @category Schema Construction */
1
2
  import { devAssert } from '../jsutils/devAssert.mjs';
2
3
  import { Kind } from '../language/kinds.mjs';
3
4
  import { parse } from '../language/parser.mjs';
@@ -5,16 +6,44 @@ import { specifiedDirectives } from '../type/directives.mjs';
5
6
  import { GraphQLSchema } from '../type/schema.mjs';
6
7
  import { assertValidSDL } from '../validation/validate.mjs';
7
8
  import { extendSchemaImpl } from './extendSchema.mjs';
9
+ /** Options used when building a schema from SDL or a parsed SDL document. */
8
10
 
9
11
  /**
10
- * This takes the ast of a schema document produced by the parse function in
11
- * src/language/parser.js.
12
+ * Builds a GraphQLSchema from a parsed schema definition language document.
12
13
  *
13
14
  * If no schema definition is provided, then it will look for types named Query,
14
15
  * Mutation and Subscription.
15
16
  *
16
- * Given that AST it constructs a GraphQLSchema. The resulting schema
17
- * has no resolve methods, so execution will use default resolvers.
17
+ * The resulting schema has no resolver functions, so execution will use the
18
+ * default field resolver.
19
+ * @param documentAST - The parsed GraphQL document AST.
20
+ * @param options - Optional configuration for this operation.
21
+ * @returns The schema built from the provided SDL document.
22
+ * @example
23
+ * ```ts
24
+ * // Build a schema from a valid parsed SDL document.
25
+ * import { parse } from 'graphql/language';
26
+ * import { buildASTSchema } from 'graphql/utilities';
27
+ *
28
+ * const document = parse('type Query { hello: String }');
29
+ * const schema = buildASTSchema(document);
30
+ *
31
+ * schema.getQueryType().name; // => 'Query'
32
+ * ```
33
+ * @example
34
+ * ```ts
35
+ * // This variant uses validation options when the SDL references unknown types.
36
+ * import { parse } from 'graphql/language';
37
+ * import { buildASTSchema } from 'graphql/utilities';
38
+ *
39
+ * const document = parse('type Query { broken: MissingType }');
40
+ *
41
+ * buildASTSchema(document); // throws an error
42
+ * buildASTSchema(document, {
43
+ * assumeValid: true,
44
+ * assumeValidSDL: true,
45
+ * }); // does not throw
46
+ * ```
18
47
  */
19
48
  export function buildASTSchema(documentAST, options) {
20
49
  (documentAST != null && documentAST.kind === Kind.DOCUMENT) ||
@@ -75,8 +104,38 @@ export function buildASTSchema(documentAST, options) {
75
104
  return new GraphQLSchema({ ...config, directives });
76
105
  }
77
106
  /**
78
- * A helper function to build a GraphQLSchema directly from a source
79
- * document.
107
+ * Builds a GraphQLSchema directly from a schema definition language source.
108
+ * @param source - The GraphQL source text or source object.
109
+ * @param options - Optional configuration for this operation.
110
+ * @returns The schema built from the provided SDL document.
111
+ * @example
112
+ * ```ts
113
+ * // Build a schema from SDL source using the default options.
114
+ * import { buildSchema } from 'graphql/utilities';
115
+ *
116
+ * const schema = buildSchema('type Query { hello: String }');
117
+ *
118
+ * schema.getQueryType().name; // => 'Query'
119
+ * ```
120
+ * @example
121
+ * ```ts
122
+ * // This variant enables parser options and omits source locations.
123
+ * import { buildSchema } from 'graphql/utilities';
124
+ *
125
+ * const schema = buildSchema(
126
+ * 'directive @tag on FIELD_DEFINITION\n' +
127
+ * 'directive @compose @tag on FIELD_DEFINITION',
128
+ * {
129
+ * experimentalDirectivesOnDirectiveDefinitions: true,
130
+ * noLocation: true,
131
+ * },
132
+ * );
133
+ *
134
+ * const directive = schema.getDirective('compose');
135
+ *
136
+ * directive.name; // => 'compose'
137
+ * directive.astNode.loc; // => undefined
138
+ * ```
80
139
  */
81
140
 
82
141
  export function buildSchema(source, options) {
@@ -1,3 +1,4 @@
1
+ /** @category Introspection */
1
2
  import type { GraphQLSchemaValidationOptions } from '../type/schema';
2
3
  import { GraphQLSchema } from '../type/schema';
3
4
  import type { IntrospectionQuery } from './getIntrospectionQuery';
@@ -12,6 +13,20 @@ import type { IntrospectionQuery } from './getIntrospectionQuery';
12
13
  *
13
14
  * This function expects a complete introspection result. Don't forget to check
14
15
  * the "errors" field of a server response before calling this function.
16
+ * @param introspection - Introspection result data to build from.
17
+ * @param options - Optional configuration for this operation.
18
+ * @returns The client schema represented by the introspection result.
19
+ * @example
20
+ * ```ts
21
+ * import { buildClientSchema, introspectionFromSchema, buildSchema } from 'graphql/utilities';
22
+ *
23
+ * const schema = buildSchema('type Query { hello: String }');
24
+ * const clientSchema = buildClientSchema(introspectionFromSchema(schema), {
25
+ * assumeValid: true,
26
+ * });
27
+ *
28
+ * clientSchema.getQueryType().name; // => 'Query'
29
+ * ```
15
30
  */
16
31
  export declare function buildClientSchema(
17
32
  introspection: IntrospectionQuery,
@@ -27,6 +27,8 @@ var _schema = require('../type/schema.js');
27
27
 
28
28
  var _valueFromAST = require('./valueFromAST.js');
29
29
 
30
+ /** @category Introspection */
31
+
30
32
  /**
31
33
  * Build a GraphQLSchema for use by client tools.
32
34
  *
@@ -38,6 +40,20 @@ var _valueFromAST = require('./valueFromAST.js');
38
40
  *
39
41
  * This function expects a complete introspection result. Don't forget to check
40
42
  * the "errors" field of a server response before calling this function.
43
+ * @param introspection - Introspection result data to build from.
44
+ * @param options - Optional configuration for this operation.
45
+ * @returns The client schema represented by the introspection result.
46
+ * @example
47
+ * ```ts
48
+ * import { buildClientSchema, introspectionFromSchema, buildSchema } from 'graphql/utilities';
49
+ *
50
+ * const schema = buildSchema('type Query { hello: String }');
51
+ * const clientSchema = buildClientSchema(introspectionFromSchema(schema), {
52
+ * assumeValid: true,
53
+ * });
54
+ *
55
+ * clientSchema.getQueryType().name; // => 'Query'
56
+ * ```
41
57
  */
42
58
  function buildClientSchema(introspection, options) {
43
59
  ((0, _isObjectLike.isObjectLike)(introspection) &&
@@ -1,3 +1,4 @@
1
+ /** @category Introspection */
1
2
  import { devAssert } from '../jsutils/devAssert.mjs';
2
3
  import { inspect } from '../jsutils/inspect.mjs';
3
4
  import { isObjectLike } from '../jsutils/isObjectLike.mjs';
@@ -34,6 +35,20 @@ import { valueFromAST } from './valueFromAST.mjs';
34
35
  *
35
36
  * This function expects a complete introspection result. Don't forget to check
36
37
  * the "errors" field of a server response before calling this function.
38
+ * @param introspection - Introspection result data to build from.
39
+ * @param options - Optional configuration for this operation.
40
+ * @returns The client schema represented by the introspection result.
41
+ * @example
42
+ * ```ts
43
+ * import { buildClientSchema, introspectionFromSchema, buildSchema } from 'graphql/utilities';
44
+ *
45
+ * const schema = buildSchema('type Query { hello: String }');
46
+ * const clientSchema = buildClientSchema(introspectionFromSchema(schema), {
47
+ * assumeValid: true,
48
+ * });
49
+ *
50
+ * clientSchema.getQueryType().name; // => 'Query'
51
+ * ```
37
52
  */
38
53
 
39
54
  export function buildClientSchema(introspection, options) {
@@ -1,3 +1,4 @@
1
+ /** @category Values */
1
2
  import { GraphQLError } from '../error/GraphQLError';
2
3
  import type { GraphQLInputType } from '../type/definition';
3
4
  declare type OnErrorCB = (
@@ -7,6 +8,51 @@ declare type OnErrorCB = (
7
8
  ) => void;
8
9
  /**
9
10
  * Coerces a JavaScript value given a GraphQL Input Type.
11
+ * @param inputValue - JavaScript value to coerce.
12
+ * @param type - GraphQL input type to coerce the value against.
13
+ * @param onError - Callback invoked for each coercion error.
14
+ * @returns Coerced value, or undefined if coercion failed and errors were reported.
15
+ * @example
16
+ * ```ts
17
+ * // Coerce runtime input values and throw on invalid input by default.
18
+ * import {
19
+ * GraphQLInputObjectType,
20
+ * GraphQLInt,
21
+ * GraphQLList,
22
+ * GraphQLNonNull,
23
+ * GraphQLString,
24
+ * } from 'graphql/type';
25
+ * import { coerceInputValue } from 'graphql/utilities';
26
+ *
27
+ * const ReviewInput = new GraphQLInputObjectType({
28
+ * name: 'ReviewInput',
29
+ * fields: {
30
+ * stars: { type: new GraphQLNonNull(GraphQLInt) },
31
+ * tags: { type: new GraphQLList(GraphQLString) },
32
+ * },
33
+ * });
34
+ *
35
+ * coerceInputValue({ stars: '5', tags: ['featured'] }, ReviewInput); // => { stars: 5, tags: ['featured'] }
36
+ * coerceInputValue({ stars: 'bad' }, ReviewInput); // throws an error
37
+ * ```
38
+ * @example
39
+ * ```ts
40
+ * // This variant collects coercion errors with a custom onError callback.
41
+ * import { GraphQLInt, GraphQLNonNull } from 'graphql/type';
42
+ * import { coerceInputValue } from 'graphql/utilities';
43
+ *
44
+ * const errors = [];
45
+ * const value = coerceInputValue(
46
+ * null,
47
+ * new GraphQLNonNull(GraphQLInt),
48
+ * (path, invalidValue, error) => {
49
+ * errors.push({ path, invalidValue, message: error.message });
50
+ * },
51
+ * );
52
+ *
53
+ * value; // => undefined
54
+ * errors; // => [ { path: [], invalidValue: null, message: 'Expected non-nullable type "Int!" not to be null.' } ]
55
+ * ```
10
56
  */
11
57
  export declare function coerceInputValue(
12
58
  inputValue: unknown,
@@ -25,8 +25,55 @@ var _GraphQLError = require('../error/GraphQLError.js');
25
25
 
26
26
  var _definition = require('../type/definition.js');
27
27
 
28
+ /** @category Values */
29
+
28
30
  /**
29
31
  * Coerces a JavaScript value given a GraphQL Input Type.
32
+ * @param inputValue - JavaScript value to coerce.
33
+ * @param type - GraphQL input type to coerce the value against.
34
+ * @param onError - Callback invoked for each coercion error.
35
+ * @returns Coerced value, or undefined if coercion failed and errors were reported.
36
+ * @example
37
+ * ```ts
38
+ * // Coerce runtime input values and throw on invalid input by default.
39
+ * import {
40
+ * GraphQLInputObjectType,
41
+ * GraphQLInt,
42
+ * GraphQLList,
43
+ * GraphQLNonNull,
44
+ * GraphQLString,
45
+ * } from 'graphql/type';
46
+ * import { coerceInputValue } from 'graphql/utilities';
47
+ *
48
+ * const ReviewInput = new GraphQLInputObjectType({
49
+ * name: 'ReviewInput',
50
+ * fields: {
51
+ * stars: { type: new GraphQLNonNull(GraphQLInt) },
52
+ * tags: { type: new GraphQLList(GraphQLString) },
53
+ * },
54
+ * });
55
+ *
56
+ * coerceInputValue({ stars: '5', tags: ['featured'] }, ReviewInput); // => { stars: 5, tags: ['featured'] }
57
+ * coerceInputValue({ stars: 'bad' }, ReviewInput); // throws an error
58
+ * ```
59
+ * @example
60
+ * ```ts
61
+ * // This variant collects coercion errors with a custom onError callback.
62
+ * import { GraphQLInt, GraphQLNonNull } from 'graphql/type';
63
+ * import { coerceInputValue } from 'graphql/utilities';
64
+ *
65
+ * const errors = [];
66
+ * const value = coerceInputValue(
67
+ * null,
68
+ * new GraphQLNonNull(GraphQLInt),
69
+ * (path, invalidValue, error) => {
70
+ * errors.push({ path, invalidValue, message: error.message });
71
+ * },
72
+ * );
73
+ *
74
+ * value; // => undefined
75
+ * errors; // => [ { path: [], invalidValue: null, message: 'Expected non-nullable type "Int!" not to be null.' } ]
76
+ * ```
30
77
  */
31
78
  function coerceInputValue(inputValue, type, onError = defaultOnError) {
32
79
  return coerceInputValueImpl(inputValue, type, onError, undefined);