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 Values */
1
2
  import { didYouMean } from '../jsutils/didYouMean.mjs';
2
3
  import { inspect } from '../jsutils/inspect.mjs';
3
4
  import { invariant } from '../jsutils/invariant.mjs';
@@ -16,6 +17,51 @@ import {
16
17
 
17
18
  /**
18
19
  * Coerces a JavaScript value given a GraphQL Input Type.
20
+ * @param inputValue - JavaScript value to coerce.
21
+ * @param type - GraphQL input type to coerce the value against.
22
+ * @param onError - Callback invoked for each coercion error.
23
+ * @returns Coerced value, or undefined if coercion failed and errors were reported.
24
+ * @example
25
+ * ```ts
26
+ * // Coerce runtime input values and throw on invalid input by default.
27
+ * import {
28
+ * GraphQLInputObjectType,
29
+ * GraphQLInt,
30
+ * GraphQLList,
31
+ * GraphQLNonNull,
32
+ * GraphQLString,
33
+ * } from 'graphql/type';
34
+ * import { coerceInputValue } from 'graphql/utilities';
35
+ *
36
+ * const ReviewInput = new GraphQLInputObjectType({
37
+ * name: 'ReviewInput',
38
+ * fields: {
39
+ * stars: { type: new GraphQLNonNull(GraphQLInt) },
40
+ * tags: { type: new GraphQLList(GraphQLString) },
41
+ * },
42
+ * });
43
+ *
44
+ * coerceInputValue({ stars: '5', tags: ['featured'] }, ReviewInput); // => { stars: 5, tags: ['featured'] }
45
+ * coerceInputValue({ stars: 'bad' }, ReviewInput); // throws an error
46
+ * ```
47
+ * @example
48
+ * ```ts
49
+ * // This variant collects coercion errors with a custom onError callback.
50
+ * import { GraphQLInt, GraphQLNonNull } from 'graphql/type';
51
+ * import { coerceInputValue } from 'graphql/utilities';
52
+ *
53
+ * const errors = [];
54
+ * const value = coerceInputValue(
55
+ * null,
56
+ * new GraphQLNonNull(GraphQLInt),
57
+ * (path, invalidValue, error) => {
58
+ * errors.push({ path, invalidValue, message: error.message });
59
+ * },
60
+ * );
61
+ *
62
+ * value; // => undefined
63
+ * errors; // => [ { path: [], invalidValue: null, message: 'Expected non-nullable type "Int!" not to be null.' } ]
64
+ * ```
19
65
  */
20
66
  export function coerceInputValue(inputValue, type, onError = defaultOnError) {
21
67
  return coerceInputValueImpl(inputValue, type, onError, undefined);
@@ -1,8 +1,20 @@
1
+ /** @category AST Utilities */
1
2
  import type { DocumentNode } from '../language/ast';
2
3
  /**
3
4
  * Provided a collection of ASTs, presumably each from different files,
4
5
  * concatenate the ASTs together into batched AST, useful for validating many
5
6
  * GraphQL source files which together represent one conceptual application.
7
+ * @param documents - Document ASTs to concatenate.
8
+ * @returns A document AST containing all definitions from the provided documents.
9
+ * @example
10
+ * ```ts
11
+ * import { parse } from 'graphql/language';
12
+ * import { concatAST } from 'graphql/utilities';
13
+ *
14
+ * const document = concatAST([parse('type Query { a: String }'), parse('type User { id: ID }')]);
15
+ *
16
+ * document.definitions.length; // => 2
17
+ * ```
6
18
  */
7
19
  export declare function concatAST(
8
20
  documents: ReadonlyArray<DocumentNode>,
@@ -7,10 +7,23 @@ exports.concatAST = concatAST;
7
7
 
8
8
  var _kinds = require('../language/kinds.js');
9
9
 
10
+ /** @category AST Utilities */
11
+
10
12
  /**
11
13
  * Provided a collection of ASTs, presumably each from different files,
12
14
  * concatenate the ASTs together into batched AST, useful for validating many
13
15
  * GraphQL source files which together represent one conceptual application.
16
+ * @param documents - Document ASTs to concatenate.
17
+ * @returns A document AST containing all definitions from the provided documents.
18
+ * @example
19
+ * ```ts
20
+ * import { parse } from 'graphql/language';
21
+ * import { concatAST } from 'graphql/utilities';
22
+ *
23
+ * const document = concatAST([parse('type Query { a: String }'), parse('type User { id: ID }')]);
24
+ *
25
+ * document.definitions.length; // => 2
26
+ * ```
14
27
  */
15
28
  function concatAST(documents) {
16
29
  const definitions = [];
@@ -1,8 +1,20 @@
1
+ /** @category AST Utilities */
1
2
  import { Kind } from '../language/kinds.mjs';
2
3
  /**
3
4
  * Provided a collection of ASTs, presumably each from different files,
4
5
  * concatenate the ASTs together into batched AST, useful for validating many
5
6
  * GraphQL source files which together represent one conceptual application.
7
+ * @param documents - Document ASTs to concatenate.
8
+ * @returns A document AST containing all definitions from the provided documents.
9
+ * @example
10
+ * ```ts
11
+ * import { parse } from 'graphql/language';
12
+ * import { concatAST } from 'graphql/utilities';
13
+ *
14
+ * const document = concatAST([parse('type Query { a: String }'), parse('type User { id: ID }')]);
15
+ *
16
+ * document.definitions.length; // => 2
17
+ * ```
6
18
  */
7
19
 
8
20
  export function concatAST(documents) {
@@ -1,3 +1,4 @@
1
+ /** @category Schema Construction */
1
2
  import type { DocumentNode } from '../language/ast';
2
3
  import type {
3
4
  GraphQLSchemaNormalizedConfig,
@@ -23,15 +24,67 @@ interface Options extends GraphQLSchemaValidationOptions {
23
24
  *
24
25
  * This algorithm copies the provided schema, applying extensions while
25
26
  * producing the copy. The original schema remains unaltered.
27
+ * @param schema - GraphQL schema to use.
28
+ * @param documentAST - The parsed GraphQL document AST.
29
+ * @param options - Optional configuration for this operation.
30
+ * @returns A new schema with the extensions and definitions applied.
31
+ * @example
32
+ * ```ts
33
+ * // Extend a schema with new fields and types.
34
+ * import { parse } from 'graphql/language';
35
+ * import { buildSchema, extendSchema } from 'graphql/utilities';
36
+ *
37
+ * const schema = buildSchema(`
38
+ * type Query {
39
+ * greeting: String
40
+ * }
41
+ * `);
42
+ * const extensionAST = parse(`
43
+ * extend type Query {
44
+ * farewell: String
45
+ * }
46
+ *
47
+ * type Review {
48
+ * body: String
49
+ * }
50
+ * `);
51
+ *
52
+ * const extendedSchema = extendSchema(schema, extensionAST);
53
+ *
54
+ * schema.getType('Review'); // => undefined
55
+ * extendedSchema.getType('Review')?.name; // => 'Review'
56
+ * Object.keys(extendedSchema.getQueryType().getFields()); // => ['greeting', 'farewell']
57
+ * ```
58
+ * @example
59
+ * ```ts
60
+ * // This variant bypasses validation for an otherwise invalid extension.
61
+ * import { parse } from 'graphql/language';
62
+ * import { buildSchema, extendSchema } from 'graphql/utilities';
63
+ *
64
+ * const schema = buildSchema(`
65
+ * type Query {
66
+ * greeting: String
67
+ * }
68
+ * `);
69
+ * const invalidExtension = parse(`
70
+ * extend type Missing {
71
+ * field: String
72
+ * }
73
+ * `);
74
+ *
75
+ * extendSchema(schema, invalidExtension); // throws an error
76
+ * extendSchema(schema, invalidExtension, {
77
+ * assumeValid: true,
78
+ * assumeValidSDL: true,
79
+ * }); // does not throw
80
+ * ```
26
81
  */
27
82
  export declare function extendSchema(
28
83
  schema: GraphQLSchema,
29
84
  documentAST: DocumentNode,
30
85
  options?: Options,
31
86
  ): GraphQLSchema;
32
- /**
33
- * @internal
34
- */
87
+ /** @internal */
35
88
  export declare function extendSchemaImpl(
36
89
  schemaConfig: GraphQLSchemaNormalizedConfig,
37
90
  documentAST: DocumentNode,
@@ -36,6 +36,8 @@ var _values = require('../execution/values.js');
36
36
 
37
37
  var _valueFromAST = require('./valueFromAST.js');
38
38
 
39
+ /** @category Schema Construction */
40
+
39
41
  /**
40
42
  * Produces a new schema given an existing schema and a document which may
41
43
  * contain GraphQL type extensions and definitions. The original schema will
@@ -47,6 +49,60 @@ var _valueFromAST = require('./valueFromAST.js');
47
49
  *
48
50
  * This algorithm copies the provided schema, applying extensions while
49
51
  * producing the copy. The original schema remains unaltered.
52
+ * @param schema - GraphQL schema to use.
53
+ * @param documentAST - The parsed GraphQL document AST.
54
+ * @param options - Optional configuration for this operation.
55
+ * @returns A new schema with the extensions and definitions applied.
56
+ * @example
57
+ * ```ts
58
+ * // Extend a schema with new fields and types.
59
+ * import { parse } from 'graphql/language';
60
+ * import { buildSchema, extendSchema } from 'graphql/utilities';
61
+ *
62
+ * const schema = buildSchema(`
63
+ * type Query {
64
+ * greeting: String
65
+ * }
66
+ * `);
67
+ * const extensionAST = parse(`
68
+ * extend type Query {
69
+ * farewell: String
70
+ * }
71
+ *
72
+ * type Review {
73
+ * body: String
74
+ * }
75
+ * `);
76
+ *
77
+ * const extendedSchema = extendSchema(schema, extensionAST);
78
+ *
79
+ * schema.getType('Review'); // => undefined
80
+ * extendedSchema.getType('Review')?.name; // => 'Review'
81
+ * Object.keys(extendedSchema.getQueryType().getFields()); // => ['greeting', 'farewell']
82
+ * ```
83
+ * @example
84
+ * ```ts
85
+ * // This variant bypasses validation for an otherwise invalid extension.
86
+ * import { parse } from 'graphql/language';
87
+ * import { buildSchema, extendSchema } from 'graphql/utilities';
88
+ *
89
+ * const schema = buildSchema(`
90
+ * type Query {
91
+ * greeting: String
92
+ * }
93
+ * `);
94
+ * const invalidExtension = parse(`
95
+ * extend type Missing {
96
+ * field: String
97
+ * }
98
+ * `);
99
+ *
100
+ * extendSchema(schema, invalidExtension); // throws an error
101
+ * extendSchema(schema, invalidExtension, {
102
+ * assumeValid: true,
103
+ * assumeValidSDL: true,
104
+ * }); // does not throw
105
+ * ```
50
106
  */
51
107
  function extendSchema(schema, documentAST, options) {
52
108
  (0, _schema.assertSchema)(schema);
@@ -69,9 +125,7 @@ function extendSchema(schema, documentAST, options) {
69
125
  ? schema
70
126
  : new _schema.GraphQLSchema(extendedConfig);
71
127
  }
72
- /**
73
- * @internal
74
- */
128
+ /** @internal */
75
129
 
76
130
  function extendSchemaImpl(schemaConfig, documentAST, options) {
77
131
  var _schemaDef, _schemaDef$descriptio, _schemaDef2, _options$assumeValid;
@@ -826,6 +880,8 @@ const stdTypeMap = (0, _keyMap.keyMap)(
826
880
  /**
827
881
  * Given a field or enum value node, returns the string value for the
828
882
  * deprecation reason.
883
+ *
884
+ * @internal
829
885
  */
830
886
 
831
887
  function getDeprecationReason(node) {
@@ -840,6 +896,8 @@ function getDeprecationReason(node) {
840
896
  }
841
897
  /**
842
898
  * Given a scalar node, returns the string value for the specifiedByURL.
899
+ *
900
+ * @internal
843
901
  */
844
902
 
845
903
  function getSpecifiedByURL(node) {
@@ -854,6 +912,8 @@ function getSpecifiedByURL(node) {
854
912
  }
855
913
  /**
856
914
  * Given an input object node, returns if the node should be OneOf.
915
+ *
916
+ * @internal
857
917
  */
858
918
 
859
919
  function isOneOf(node) {
@@ -1,3 +1,4 @@
1
+ /** @category Schema Construction */
1
2
  import { devAssert } from '../jsutils/devAssert.mjs';
2
3
  import { inspect } from '../jsutils/inspect.mjs';
3
4
  import { invariant } from '../jsutils/invariant.mjs';
@@ -56,6 +57,60 @@ import { valueFromAST } from './valueFromAST.mjs';
56
57
  *
57
58
  * This algorithm copies the provided schema, applying extensions while
58
59
  * producing the copy. The original schema remains unaltered.
60
+ * @param schema - GraphQL schema to use.
61
+ * @param documentAST - The parsed GraphQL document AST.
62
+ * @param options - Optional configuration for this operation.
63
+ * @returns A new schema with the extensions and definitions applied.
64
+ * @example
65
+ * ```ts
66
+ * // Extend a schema with new fields and types.
67
+ * import { parse } from 'graphql/language';
68
+ * import { buildSchema, extendSchema } from 'graphql/utilities';
69
+ *
70
+ * const schema = buildSchema(`
71
+ * type Query {
72
+ * greeting: String
73
+ * }
74
+ * `);
75
+ * const extensionAST = parse(`
76
+ * extend type Query {
77
+ * farewell: String
78
+ * }
79
+ *
80
+ * type Review {
81
+ * body: String
82
+ * }
83
+ * `);
84
+ *
85
+ * const extendedSchema = extendSchema(schema, extensionAST);
86
+ *
87
+ * schema.getType('Review'); // => undefined
88
+ * extendedSchema.getType('Review')?.name; // => 'Review'
89
+ * Object.keys(extendedSchema.getQueryType().getFields()); // => ['greeting', 'farewell']
90
+ * ```
91
+ * @example
92
+ * ```ts
93
+ * // This variant bypasses validation for an otherwise invalid extension.
94
+ * import { parse } from 'graphql/language';
95
+ * import { buildSchema, extendSchema } from 'graphql/utilities';
96
+ *
97
+ * const schema = buildSchema(`
98
+ * type Query {
99
+ * greeting: String
100
+ * }
101
+ * `);
102
+ * const invalidExtension = parse(`
103
+ * extend type Missing {
104
+ * field: String
105
+ * }
106
+ * `);
107
+ *
108
+ * extendSchema(schema, invalidExtension); // throws an error
109
+ * extendSchema(schema, invalidExtension, {
110
+ * assumeValid: true,
111
+ * assumeValidSDL: true,
112
+ * }); // does not throw
113
+ * ```
59
114
  */
60
115
  export function extendSchema(schema, documentAST, options) {
61
116
  assertSchema(schema);
@@ -78,9 +133,7 @@ export function extendSchema(schema, documentAST, options) {
78
133
  ? schema
79
134
  : new GraphQLSchema(extendedConfig);
80
135
  }
81
- /**
82
- * @internal
83
- */
136
+ /** @internal */
84
137
 
85
138
  export function extendSchemaImpl(schemaConfig, documentAST, options) {
86
139
  var _schemaDef, _schemaDef$descriptio, _schemaDef2, _options$assumeValid;
@@ -824,6 +877,8 @@ const stdTypeMap = keyMap(
824
877
  /**
825
878
  * Given a field or enum value node, returns the string value for the
826
879
  * deprecation reason.
880
+ *
881
+ * @internal
827
882
  */
828
883
 
829
884
  function getDeprecationReason(node) {
@@ -835,6 +890,8 @@ function getDeprecationReason(node) {
835
890
  }
836
891
  /**
837
892
  * Given a scalar node, returns the string value for the specifiedByURL.
893
+ *
894
+ * @internal
838
895
  */
839
896
 
840
897
  function getSpecifiedByURL(node) {
@@ -846,6 +903,8 @@ function getSpecifiedByURL(node) {
846
903
  }
847
904
  /**
848
905
  * Given an input object node, returns if the node should be OneOf.
906
+ *
907
+ * @internal
849
908
  */
850
909
 
851
910
  function isOneOf(node) {
@@ -1,43 +1,106 @@
1
+ /** @category Schema Changes */
1
2
  import type { GraphQLSchema } from '../type/schema';
3
+ /** Categories of schema changes that may break existing operations. */
2
4
  declare enum BreakingChangeType {
5
+ /** Breaking change code for type removed. */
3
6
  TYPE_REMOVED = 'TYPE_REMOVED',
7
+ /** Breaking change code for type changed kind. */
4
8
  TYPE_CHANGED_KIND = 'TYPE_CHANGED_KIND',
9
+ /** Breaking change code for type removed from union. */
5
10
  TYPE_REMOVED_FROM_UNION = 'TYPE_REMOVED_FROM_UNION',
11
+ /** Breaking change code for value removed from enum. */
6
12
  VALUE_REMOVED_FROM_ENUM = 'VALUE_REMOVED_FROM_ENUM',
13
+ /** Breaking change code for required input field added. */
7
14
  REQUIRED_INPUT_FIELD_ADDED = 'REQUIRED_INPUT_FIELD_ADDED',
15
+ /** Breaking change code for implemented interface removed. */
8
16
  IMPLEMENTED_INTERFACE_REMOVED = 'IMPLEMENTED_INTERFACE_REMOVED',
17
+ /** Breaking change code for field removed. */
9
18
  FIELD_REMOVED = 'FIELD_REMOVED',
19
+ /** Breaking change code for field changed kind. */
10
20
  FIELD_CHANGED_KIND = 'FIELD_CHANGED_KIND',
21
+ /** Breaking change code for required arg added. */
11
22
  REQUIRED_ARG_ADDED = 'REQUIRED_ARG_ADDED',
23
+ /** Breaking change code for arg removed. */
12
24
  ARG_REMOVED = 'ARG_REMOVED',
25
+ /** Breaking change code for arg changed kind. */
13
26
  ARG_CHANGED_KIND = 'ARG_CHANGED_KIND',
27
+ /** Breaking change code for directive removed. */
14
28
  DIRECTIVE_REMOVED = 'DIRECTIVE_REMOVED',
29
+ /** Breaking change code for directive arg removed. */
15
30
  DIRECTIVE_ARG_REMOVED = 'DIRECTIVE_ARG_REMOVED',
31
+ /** Breaking change code for required directive arg added. */
16
32
  REQUIRED_DIRECTIVE_ARG_ADDED = 'REQUIRED_DIRECTIVE_ARG_ADDED',
33
+ /** Breaking change code for directive repeatable removed. */
17
34
  DIRECTIVE_REPEATABLE_REMOVED = 'DIRECTIVE_REPEATABLE_REMOVED',
35
+ /** Breaking change code for directive location removed. */
18
36
  DIRECTIVE_LOCATION_REMOVED = 'DIRECTIVE_LOCATION_REMOVED',
19
37
  }
20
38
  export { BreakingChangeType };
39
+ /** Categories of schema changes that may be dangerous for existing operations. */
21
40
  declare enum DangerousChangeType {
41
+ /** Dangerous change code for value added to enum. */
22
42
  VALUE_ADDED_TO_ENUM = 'VALUE_ADDED_TO_ENUM',
43
+ /** Dangerous change code for type added to union. */
23
44
  TYPE_ADDED_TO_UNION = 'TYPE_ADDED_TO_UNION',
45
+ /** Dangerous change code for optional input field added. */
24
46
  OPTIONAL_INPUT_FIELD_ADDED = 'OPTIONAL_INPUT_FIELD_ADDED',
47
+ /** Dangerous change code for optional arg added. */
25
48
  OPTIONAL_ARG_ADDED = 'OPTIONAL_ARG_ADDED',
49
+ /** Dangerous change code for implemented interface added. */
26
50
  IMPLEMENTED_INTERFACE_ADDED = 'IMPLEMENTED_INTERFACE_ADDED',
51
+ /** Dangerous change code for arg default value change. */
27
52
  ARG_DEFAULT_VALUE_CHANGE = 'ARG_DEFAULT_VALUE_CHANGE',
28
53
  }
29
54
  export { DangerousChangeType };
55
+ /** Description of a schema change that may break existing operations. */
30
56
  export interface BreakingChange {
57
+ /** Specific kind of breaking schema change. */
31
58
  type: BreakingChangeType;
59
+ /** Human-readable description of the breaking schema change. */
32
60
  description: string;
33
61
  }
62
+ /** Description of a schema change that may be dangerous for existing operations. */
34
63
  export interface DangerousChange {
64
+ /** Specific kind of dangerous schema change. */
35
65
  type: DangerousChangeType;
66
+ /** Human-readable description of the dangerous schema change. */
36
67
  description: string;
37
68
  }
38
69
  /**
39
70
  * Given two schemas, returns an Array containing descriptions of all the types
40
71
  * of breaking changes covered by the other functions down below.
72
+ * @param oldSchema - Schema before the change.
73
+ * @param newSchema - Schema after the change.
74
+ * @returns Breaking changes between the two schemas.
75
+ * @example
76
+ * ```ts
77
+ * import { buildSchema, findBreakingChanges } from 'graphql/utilities';
78
+ *
79
+ * const oldSchema = buildSchema(`
80
+ * type User {
81
+ * id: ID!
82
+ * name: String
83
+ * }
84
+ *
85
+ * type Query {
86
+ * viewer: User
87
+ * }
88
+ * `);
89
+ * const newSchema = buildSchema(`
90
+ * type User {
91
+ * id: ID!
92
+ * }
93
+ *
94
+ * type Query {
95
+ * viewer: User
96
+ * }
97
+ * `);
98
+ *
99
+ * const changes = findBreakingChanges(oldSchema, newSchema);
100
+ *
101
+ * changes[0].type; // => 'FIELD_REMOVED'
102
+ * changes[0].description; // matches /User.name was removed/
103
+ * ```
41
104
  */
42
105
  export declare function findBreakingChanges(
43
106
  oldSchema: GraphQLSchema,
@@ -46,6 +109,38 @@ export declare function findBreakingChanges(
46
109
  /**
47
110
  * Given two schemas, returns an Array containing descriptions of all the types
48
111
  * of potentially dangerous changes covered by the other functions down below.
112
+ * @param oldSchema - Schema before the change.
113
+ * @param newSchema - Schema after the change.
114
+ * @returns Dangerous changes between the two schemas.
115
+ * @example
116
+ * ```ts
117
+ * import { buildSchema, findDangerousChanges } from 'graphql/utilities';
118
+ *
119
+ * const oldSchema = buildSchema(`
120
+ * enum Episode {
121
+ * NEW_HOPE
122
+ * }
123
+ *
124
+ * type Query {
125
+ * episode: Episode
126
+ * }
127
+ * `);
128
+ * const newSchema = buildSchema(`
129
+ * enum Episode {
130
+ * NEW_HOPE
131
+ * EMPIRE
132
+ * }
133
+ *
134
+ * type Query {
135
+ * episode: Episode
136
+ * }
137
+ * `);
138
+ *
139
+ * const changes = findDangerousChanges(oldSchema, newSchema);
140
+ *
141
+ * changes[0].type; // => 'VALUE_ADDED_TO_ENUM'
142
+ * changes[0].description; // matches /EMPIRE was added/
143
+ * ```
49
144
  */
50
145
  export declare function findDangerousChanges(
51
146
  oldSchema: GraphQLSchema,
@@ -23,6 +23,9 @@ var _astFromValue = require('./astFromValue.js');
23
23
 
24
24
  var _sortValueNode = require('./sortValueNode.js');
25
25
 
26
+ /** @category Schema Changes */
27
+
28
+ /** Categories of schema changes that may break existing operations. */
26
29
  var BreakingChangeType;
27
30
  exports.BreakingChangeType = BreakingChangeType;
28
31
 
@@ -52,6 +55,7 @@ exports.BreakingChangeType = BreakingChangeType;
52
55
  BreakingChangeType || (exports.BreakingChangeType = BreakingChangeType = {}),
53
56
  );
54
57
 
58
+ /** Categories of schema changes that may be dangerous for existing operations. */
55
59
  var DangerousChangeType;
56
60
  exports.DangerousChangeType = DangerousChangeType;
57
61
 
@@ -72,6 +76,38 @@ exports.DangerousChangeType = DangerousChangeType;
72
76
  /**
73
77
  * Given two schemas, returns an Array containing descriptions of all the types
74
78
  * of breaking changes covered by the other functions down below.
79
+ * @param oldSchema - Schema before the change.
80
+ * @param newSchema - Schema after the change.
81
+ * @returns Breaking changes between the two schemas.
82
+ * @example
83
+ * ```ts
84
+ * import { buildSchema, findBreakingChanges } from 'graphql/utilities';
85
+ *
86
+ * const oldSchema = buildSchema(`
87
+ * type User {
88
+ * id: ID!
89
+ * name: String
90
+ * }
91
+ *
92
+ * type Query {
93
+ * viewer: User
94
+ * }
95
+ * `);
96
+ * const newSchema = buildSchema(`
97
+ * type User {
98
+ * id: ID!
99
+ * }
100
+ *
101
+ * type Query {
102
+ * viewer: User
103
+ * }
104
+ * `);
105
+ *
106
+ * const changes = findBreakingChanges(oldSchema, newSchema);
107
+ *
108
+ * changes[0].type; // => 'FIELD_REMOVED'
109
+ * changes[0].description; // matches /User.name was removed/
110
+ * ```
75
111
  */
76
112
  function findBreakingChanges(oldSchema, newSchema) {
77
113
  // @ts-expect-error
@@ -82,6 +118,38 @@ function findBreakingChanges(oldSchema, newSchema) {
82
118
  /**
83
119
  * Given two schemas, returns an Array containing descriptions of all the types
84
120
  * of potentially dangerous changes covered by the other functions down below.
121
+ * @param oldSchema - Schema before the change.
122
+ * @param newSchema - Schema after the change.
123
+ * @returns Dangerous changes between the two schemas.
124
+ * @example
125
+ * ```ts
126
+ * import { buildSchema, findDangerousChanges } from 'graphql/utilities';
127
+ *
128
+ * const oldSchema = buildSchema(`
129
+ * enum Episode {
130
+ * NEW_HOPE
131
+ * }
132
+ *
133
+ * type Query {
134
+ * episode: Episode
135
+ * }
136
+ * `);
137
+ * const newSchema = buildSchema(`
138
+ * enum Episode {
139
+ * NEW_HOPE
140
+ * EMPIRE
141
+ * }
142
+ *
143
+ * type Query {
144
+ * episode: Episode
145
+ * }
146
+ * `);
147
+ *
148
+ * const changes = findDangerousChanges(oldSchema, newSchema);
149
+ *
150
+ * changes[0].type; // => 'VALUE_ADDED_TO_ENUM'
151
+ * changes[0].description; // matches /EMPIRE was added/
152
+ * ```
85
153
  */
86
154
 
87
155
  function findDangerousChanges(oldSchema, newSchema) {