graphql 15.3.0 → 15.5.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 (337) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +10 -0
  3. package/error/GraphQLError.js +8 -8
  4. package/error/GraphQLError.js.flow +2 -3
  5. package/error/GraphQLError.mjs +2 -2
  6. package/error/formatError.js +1 -1
  7. package/error/formatError.js.flow +0 -1
  8. package/error/index.js +4 -4
  9. package/error/index.js.flow +0 -1
  10. package/error/locatedError.d.ts +2 -2
  11. package/error/locatedError.js +10 -5
  12. package/error/locatedError.js.flow +10 -4
  13. package/error/locatedError.mjs +6 -4
  14. package/error/syntaxError.js +1 -1
  15. package/error/syntaxError.js.flow +0 -1
  16. package/execution/execute.d.ts +0 -15
  17. package/execution/execute.js +104 -104
  18. package/execution/execute.js.flow +119 -133
  19. package/execution/execute.mjs +86 -82
  20. package/execution/index.js +3 -3
  21. package/execution/index.js.flow +0 -1
  22. package/execution/values.js +11 -11
  23. package/execution/values.js.flow +0 -1
  24. package/graphql.js +5 -5
  25. package/graphql.js.flow +0 -1
  26. package/index.d.ts +1 -0
  27. package/index.js +9 -9
  28. package/index.js.flow +0 -1
  29. package/jsutils/ObjMap.js.flow +0 -1
  30. package/jsutils/Path.js.flow +0 -1
  31. package/jsutils/PromiseOrValue.js.flow +0 -1
  32. package/jsutils/defineInspect.js +2 -2
  33. package/jsutils/defineInspect.js.flow +0 -1
  34. package/jsutils/devAssert.js.flow +0 -1
  35. package/jsutils/didYouMean.js.flow +0 -1
  36. package/jsutils/identityFunc.js.flow +0 -1
  37. package/jsutils/inspect.js +1 -2
  38. package/jsutils/inspect.js.flow +10 -8
  39. package/jsutils/inspect.mjs +1 -1
  40. package/jsutils/instanceOf.js +15 -9
  41. package/jsutils/instanceOf.js.flow +13 -7
  42. package/jsutils/instanceOf.mjs +13 -5
  43. package/jsutils/invariant.js.flow +0 -1
  44. package/jsutils/isAsyncIterable.js +13 -0
  45. package/jsutils/isAsyncIterable.js.flow +14 -0
  46. package/jsutils/isAsyncIterable.mjs +10 -0
  47. package/jsutils/isObjectLike.js.flow +0 -1
  48. package/jsutils/isPromise.js.flow +0 -1
  49. package/jsutils/keyMap.js.flow +0 -1
  50. package/jsutils/keyValMap.js.flow +0 -1
  51. package/jsutils/mapValue.js +1 -1
  52. package/jsutils/mapValue.js.flow +0 -1
  53. package/jsutils/memoize3.js +2 -5
  54. package/jsutils/memoize3.js.flow +2 -5
  55. package/jsutils/memoize3.mjs +2 -5
  56. package/jsutils/naturalCompare.js +69 -0
  57. package/jsutils/naturalCompare.js.flow +59 -0
  58. package/jsutils/naturalCompare.mjs +61 -0
  59. package/jsutils/nodejsCustomInspectSymbol.js.flow +0 -1
  60. package/jsutils/printPathArray.js.flow +0 -1
  61. package/jsutils/promiseForObject.js.flow +0 -1
  62. package/jsutils/promiseReduce.js +1 -1
  63. package/jsutils/promiseReduce.js.flow +0 -1
  64. package/jsutils/safeArrayFrom.js +73 -0
  65. package/jsutils/safeArrayFrom.js.flow +59 -0
  66. package/jsutils/safeArrayFrom.mjs +66 -0
  67. package/jsutils/suggestionList.js +5 -1
  68. package/jsutils/suggestionList.js.flow +3 -2
  69. package/jsutils/suggestionList.mjs +3 -1
  70. package/jsutils/toObjMap.js +1 -1
  71. package/jsutils/toObjMap.js.flow +0 -1
  72. package/language/ast.js +1 -1
  73. package/language/ast.js.flow +0 -1
  74. package/language/blockString.d.ts +1 -1
  75. package/language/blockString.js +53 -32
  76. package/language/blockString.js.flow +51 -36
  77. package/language/blockString.mjs +54 -33
  78. package/language/directiveLocation.js.flow +0 -1
  79. package/language/experimentalOnlineParser/grammar.d.ts +1006 -0
  80. package/language/experimentalOnlineParser/grammar.js +987 -0
  81. package/language/experimentalOnlineParser/grammar.js.flow +1000 -0
  82. package/language/experimentalOnlineParser/grammar.mjs +980 -0
  83. package/language/experimentalOnlineParser/index.d.ts +6 -0
  84. package/language/experimentalOnlineParser/index.js +31 -0
  85. package/language/experimentalOnlineParser/index.js.flow +7 -0
  86. package/language/experimentalOnlineParser/index.mjs +1 -0
  87. package/language/experimentalOnlineParser/onlineParser.d.ts +125 -0
  88. package/language/experimentalOnlineParser/onlineParser.js +604 -0
  89. package/language/experimentalOnlineParser/onlineParser.js.flow +723 -0
  90. package/language/experimentalOnlineParser/onlineParser.mjs +587 -0
  91. package/language/index.js +12 -12
  92. package/language/index.js.flow +0 -1
  93. package/language/kinds.js.flow +0 -1
  94. package/language/lexer.js +242 -183
  95. package/language/lexer.js.flow +188 -184
  96. package/language/lexer.mjs +238 -179
  97. package/language/location.js.flow +0 -1
  98. package/language/parser.js +73 -68
  99. package/language/parser.js.flow +62 -57
  100. package/language/parser.mjs +64 -60
  101. package/language/predicates.js +1 -1
  102. package/language/predicates.js.flow +0 -1
  103. package/language/printLocation.js +1 -1
  104. package/language/printLocation.js.flow +0 -1
  105. package/language/printer.js +20 -13
  106. package/language/printer.js.flow +26 -25
  107. package/language/printer.mjs +18 -11
  108. package/language/source.d.ts +7 -0
  109. package/language/source.js +20 -3
  110. package/language/source.js.flow +21 -3
  111. package/language/source.mjs +14 -1
  112. package/language/tokenKind.js.flow +0 -1
  113. package/language/visitor.js +2 -2
  114. package/language/visitor.js.flow +0 -1
  115. package/package.json +2 -3
  116. package/polyfills/arrayFrom.js +2 -2
  117. package/polyfills/arrayFrom.js.flow +1 -2
  118. package/polyfills/arrayFrom.mjs +1 -1
  119. package/polyfills/find.js +1 -1
  120. package/polyfills/find.js.flow +1 -2
  121. package/polyfills/find.mjs +1 -1
  122. package/polyfills/isFinite.js +1 -1
  123. package/polyfills/isFinite.js.flow +1 -2
  124. package/polyfills/isFinite.mjs +1 -1
  125. package/polyfills/isInteger.js +1 -1
  126. package/polyfills/isInteger.js.flow +1 -2
  127. package/polyfills/isInteger.mjs +1 -1
  128. package/polyfills/objectEntries.js +1 -1
  129. package/polyfills/objectEntries.js.flow +1 -2
  130. package/polyfills/objectEntries.mjs +1 -1
  131. package/polyfills/objectValues.js +1 -1
  132. package/polyfills/objectValues.js.flow +1 -2
  133. package/polyfills/objectValues.mjs +1 -1
  134. package/polyfills/symbols.js +3 -5
  135. package/polyfills/symbols.js.flow +9 -6
  136. package/polyfills/symbols.mjs +3 -5
  137. package/subscription/index.js +1 -1
  138. package/subscription/index.js.flow +0 -1
  139. package/subscription/mapAsyncIterator.js +2 -2
  140. package/subscription/mapAsyncIterator.js.flow +8 -9
  141. package/subscription/mapAsyncIterator.mjs +1 -1
  142. package/subscription/subscribe.js +61 -73
  143. package/subscription/subscribe.js.flow +71 -85
  144. package/subscription/subscribe.mjs +53 -65
  145. package/type/definition.d.ts +16 -6
  146. package/type/definition.js +37 -32
  147. package/type/definition.js.flow +93 -63
  148. package/type/definition.mjs +19 -14
  149. package/type/directives.js +17 -16
  150. package/type/directives.js.flow +20 -13
  151. package/type/directives.mjs +6 -5
  152. package/type/index.js +6 -6
  153. package/type/index.js.flow +0 -1
  154. package/type/introspection.js +86 -65
  155. package/type/introspection.js.flow +75 -43
  156. package/type/introspection.mjs +79 -58
  157. package/type/scalars.js +9 -9
  158. package/type/scalars.js.flow +1 -2
  159. package/type/scalars.mjs +1 -1
  160. package/type/schema.js +13 -13
  161. package/type/schema.js.flow +2 -3
  162. package/type/schema.mjs +1 -1
  163. package/type/validate.js +52 -19
  164. package/type/validate.js.flow +54 -8
  165. package/type/validate.mjs +43 -9
  166. package/utilities/TypeInfo.js +7 -7
  167. package/utilities/TypeInfo.js.flow +1 -2
  168. package/utilities/assertValidName.js +2 -2
  169. package/utilities/assertValidName.js.flow +0 -1
  170. package/utilities/astFromValue.js +14 -16
  171. package/utilities/astFromValue.js.flow +6 -7
  172. package/utilities/astFromValue.mjs +6 -7
  173. package/utilities/buildASTSchema.js +17 -27
  174. package/utilities/buildASTSchema.js.flow +5 -21
  175. package/utilities/buildASTSchema.mjs +11 -21
  176. package/utilities/buildClientSchema.js +16 -15
  177. package/utilities/buildClientSchema.js.flow +28 -12
  178. package/utilities/buildClientSchema.mjs +5 -4
  179. package/utilities/coerceInputValue.js +17 -18
  180. package/utilities/coerceInputValue.js.flow +12 -10
  181. package/utilities/coerceInputValue.mjs +7 -7
  182. package/utilities/concatAST.js +9 -8
  183. package/utilities/concatAST.js.flow +8 -8
  184. package/utilities/concatAST.mjs +9 -6
  185. package/utilities/extendSchema.js +26 -19
  186. package/utilities/extendSchema.js.flow +19 -7
  187. package/utilities/extendSchema.mjs +8 -1
  188. package/utilities/findBreakingChanges.js +15 -11
  189. package/utilities/findBreakingChanges.js.flow +6 -3
  190. package/utilities/findBreakingChanges.mjs +5 -2
  191. package/utilities/findDeprecatedUsages.js +2 -2
  192. package/utilities/findDeprecatedUsages.js.flow +0 -1
  193. package/utilities/getIntrospectionQuery.d.ts +6 -0
  194. package/utilities/getIntrospectionQuery.js +8 -2
  195. package/utilities/getIntrospectionQuery.js.flow +17 -5
  196. package/utilities/getIntrospectionQuery.mjs +8 -2
  197. package/utilities/getOperationAST.js +1 -1
  198. package/utilities/getOperationAST.js.flow +0 -1
  199. package/utilities/getOperationRootType.js +1 -1
  200. package/utilities/getOperationRootType.js.flow +0 -1
  201. package/utilities/index.d.ts +3 -0
  202. package/utilities/index.js +22 -22
  203. package/utilities/index.js.flow +0 -1
  204. package/utilities/introspectionFromSchema.js +7 -5
  205. package/utilities/introspectionFromSchema.js.flow +2 -1
  206. package/utilities/introspectionFromSchema.mjs +3 -1
  207. package/utilities/lexicographicSortSchema.js +13 -9
  208. package/utilities/lexicographicSortSchema.js.flow +21 -13
  209. package/utilities/lexicographicSortSchema.mjs +5 -2
  210. package/utilities/printSchema.js +15 -16
  211. package/utilities/printSchema.js.flow +23 -16
  212. package/utilities/printSchema.mjs +5 -6
  213. package/utilities/separateOperations.js +46 -42
  214. package/utilities/separateOperations.js.flow +46 -37
  215. package/utilities/separateOperations.mjs +44 -40
  216. package/utilities/stripIgnoredCharacters.js +6 -16
  217. package/utilities/stripIgnoredCharacters.js.flow +4 -13
  218. package/utilities/stripIgnoredCharacters.mjs +3 -10
  219. package/utilities/typeComparators.js +1 -1
  220. package/utilities/typeComparators.js.flow +0 -1
  221. package/utilities/typeFromAST.js +6 -6
  222. package/utilities/typeFromAST.js.flow +2 -3
  223. package/utilities/typeFromAST.mjs +2 -2
  224. package/utilities/typedQueryDocumentNode.d.ts +20 -0
  225. package/utilities/valueFromAST.js +6 -6
  226. package/utilities/valueFromAST.js.flow +4 -2
  227. package/utilities/valueFromASTUntyped.js +4 -4
  228. package/utilities/valueFromASTUntyped.js.flow +0 -1
  229. package/validation/ValidationContext.js +3 -3
  230. package/validation/ValidationContext.js.flow +3 -4
  231. package/validation/index.js +38 -38
  232. package/validation/index.js.flow +0 -1
  233. package/validation/rules/ExecutableDefinitions.js +1 -1
  234. package/validation/rules/ExecutableDefinitions.js.flow +0 -1
  235. package/validation/rules/ExecutableDefinitionsRule.js +3 -3
  236. package/validation/rules/ExecutableDefinitionsRule.js.flow +0 -1
  237. package/validation/rules/FieldsOnCorrectTypeRule.js +8 -6
  238. package/validation/rules/FieldsOnCorrectTypeRule.js.flow +2 -2
  239. package/validation/rules/FieldsOnCorrectTypeRule.mjs +2 -1
  240. package/validation/rules/FragmentsOnCompositeTypesRule.js +4 -4
  241. package/validation/rules/FragmentsOnCompositeTypesRule.js.flow +0 -1
  242. package/validation/rules/KnownArgumentNamesRule.js +5 -5
  243. package/validation/rules/KnownArgumentNamesRule.js.flow +1 -1
  244. package/validation/rules/KnownDirectivesRule.js +6 -6
  245. package/validation/rules/KnownDirectivesRule.js.flow +4 -3
  246. package/validation/rules/KnownFragmentNamesRule.js +1 -1
  247. package/validation/rules/KnownFragmentNamesRule.js.flow +0 -1
  248. package/validation/rules/KnownTypeNamesRule.js +6 -6
  249. package/validation/rules/KnownTypeNamesRule.js.flow +1 -2
  250. package/validation/rules/LoneAnonymousOperationRule.js +2 -2
  251. package/validation/rules/LoneAnonymousOperationRule.js.flow +0 -1
  252. package/validation/rules/LoneSchemaDefinition.js +1 -1
  253. package/validation/rules/LoneSchemaDefinition.js.flow +0 -1
  254. package/validation/rules/LoneSchemaDefinitionRule.js +1 -1
  255. package/validation/rules/LoneSchemaDefinitionRule.js.flow +0 -1
  256. package/validation/rules/NoFragmentCyclesRule.js +1 -1
  257. package/validation/rules/NoFragmentCyclesRule.js.flow +1 -2
  258. package/validation/rules/NoUndefinedVariablesRule.js +1 -1
  259. package/validation/rules/NoUndefinedVariablesRule.js.flow +0 -1
  260. package/validation/rules/NoUnusedFragmentsRule.js +1 -1
  261. package/validation/rules/NoUnusedFragmentsRule.js.flow +0 -1
  262. package/validation/rules/NoUnusedVariablesRule.js +1 -1
  263. package/validation/rules/NoUnusedVariablesRule.js.flow +0 -1
  264. package/validation/rules/OverlappingFieldsCanBeMergedRule.js +20 -20
  265. package/validation/rules/OverlappingFieldsCanBeMergedRule.js.flow +14 -14
  266. package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +12 -12
  267. package/validation/rules/PossibleFragmentSpreadsRule.js +5 -5
  268. package/validation/rules/PossibleFragmentSpreadsRule.js.flow +5 -2
  269. package/validation/rules/PossibleTypeExtensions.js +1 -1
  270. package/validation/rules/PossibleTypeExtensions.js.flow +0 -1
  271. package/validation/rules/PossibleTypeExtensionsRule.js +8 -8
  272. package/validation/rules/PossibleTypeExtensionsRule.js.flow +6 -4
  273. package/validation/rules/ProvidedRequiredArgumentsRule.js +7 -7
  274. package/validation/rules/ProvidedRequiredArgumentsRule.js.flow +4 -3
  275. package/validation/rules/ScalarLeafsRule.js +3 -3
  276. package/validation/rules/ScalarLeafsRule.js.flow +0 -1
  277. package/validation/rules/SingleFieldSubscriptionsRule.js +1 -1
  278. package/validation/rules/SingleFieldSubscriptionsRule.js.flow +0 -1
  279. package/validation/rules/UniqueArgumentNamesRule.js +1 -1
  280. package/validation/rules/UniqueArgumentNamesRule.js.flow +0 -1
  281. package/validation/rules/UniqueDirectiveNames.js +1 -1
  282. package/validation/rules/UniqueDirectiveNames.js.flow +0 -1
  283. package/validation/rules/UniqueDirectiveNamesRule.js +2 -2
  284. package/validation/rules/UniqueDirectiveNamesRule.js.flow +0 -1
  285. package/validation/rules/UniqueDirectiveNamesRule.mjs +1 -1
  286. package/validation/rules/UniqueDirectivesPerLocationRule.js +4 -4
  287. package/validation/rules/UniqueDirectivesPerLocationRule.js.flow +0 -1
  288. package/validation/rules/UniqueEnumValueNames.js +1 -1
  289. package/validation/rules/UniqueEnumValueNames.js.flow +0 -1
  290. package/validation/rules/UniqueEnumValueNamesRule.js +2 -2
  291. package/validation/rules/UniqueEnumValueNamesRule.js.flow +7 -2
  292. package/validation/rules/UniqueFieldDefinitionNames.js +1 -1
  293. package/validation/rules/UniqueFieldDefinitionNames.js.flow +0 -1
  294. package/validation/rules/UniqueFieldDefinitionNamesRule.js +3 -3
  295. package/validation/rules/UniqueFieldDefinitionNamesRule.js.flow +13 -4
  296. package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +1 -1
  297. package/validation/rules/UniqueFragmentNamesRule.js +1 -1
  298. package/validation/rules/UniqueFragmentNamesRule.js.flow +0 -1
  299. package/validation/rules/UniqueInputFieldNamesRule.js +1 -1
  300. package/validation/rules/UniqueInputFieldNamesRule.js.flow +0 -1
  301. package/validation/rules/UniqueOperationNamesRule.js +1 -1
  302. package/validation/rules/UniqueOperationNamesRule.js.flow +0 -1
  303. package/validation/rules/UniqueOperationTypes.js +1 -1
  304. package/validation/rules/UniqueOperationTypes.js.flow +0 -1
  305. package/validation/rules/UniqueOperationTypesRule.js +1 -1
  306. package/validation/rules/UniqueOperationTypesRule.js.flow +7 -2
  307. package/validation/rules/UniqueTypeNames.js +1 -1
  308. package/validation/rules/UniqueTypeNames.js.flow +0 -1
  309. package/validation/rules/UniqueTypeNamesRule.js +2 -2
  310. package/validation/rules/UniqueTypeNamesRule.js.flow +0 -1
  311. package/validation/rules/UniqueTypeNamesRule.mjs +1 -1
  312. package/validation/rules/UniqueVariableNamesRule.js +1 -1
  313. package/validation/rules/UniqueVariableNamesRule.js.flow +0 -1
  314. package/validation/rules/ValuesOfCorrectTypeRule.js +8 -8
  315. package/validation/rules/ValuesOfCorrectTypeRule.js.flow +0 -1
  316. package/validation/rules/VariablesAreInputTypesRule.js +4 -4
  317. package/validation/rules/VariablesAreInputTypesRule.js.flow +0 -1
  318. package/validation/rules/VariablesInAllowedPositionRule.js +6 -6
  319. package/validation/rules/VariablesInAllowedPositionRule.js.flow +0 -1
  320. package/validation/rules/custom/NoDeprecatedCustomRule.js +47 -9
  321. package/validation/rules/custom/NoDeprecatedCustomRule.js.flow +56 -13
  322. package/validation/rules/custom/NoDeprecatedCustomRule.mjs +43 -8
  323. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +3 -3
  324. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js.flow +0 -1
  325. package/validation/specifiedRules.js +33 -33
  326. package/validation/specifiedRules.js.flow +0 -1
  327. package/validation/validate.js +7 -7
  328. package/validation/validate.js.flow +4 -5
  329. package/version.js +3 -3
  330. package/version.js.flow +3 -4
  331. package/version.mjs +3 -3
  332. package/jsutils/isCollection.js +0 -47
  333. package/jsutils/isCollection.js.flow +0 -39
  334. package/jsutils/isCollection.mjs +0 -40
  335. package/polyfills/flatMap.js +0 -30
  336. package/polyfills/flatMap.js.flow +0 -28
  337. package/polyfills/flatMap.mjs +0 -23
package/type/schema.js CHANGED
@@ -7,29 +7,29 @@ exports.isSchema = isSchema;
7
7
  exports.assertSchema = assertSchema;
8
8
  exports.GraphQLSchema = void 0;
9
9
 
10
- var _find = _interopRequireDefault(require("../polyfills/find"));
10
+ var _find = _interopRequireDefault(require("../polyfills/find.js"));
11
11
 
12
- var _arrayFrom3 = _interopRequireDefault(require("../polyfills/arrayFrom"));
12
+ var _arrayFrom3 = _interopRequireDefault(require("../polyfills/arrayFrom.js"));
13
13
 
14
- var _objectValues5 = _interopRequireDefault(require("../polyfills/objectValues"));
14
+ var _objectValues5 = _interopRequireDefault(require("../polyfills/objectValues.js"));
15
15
 
16
- var _symbols = require("../polyfills/symbols");
16
+ var _symbols = require("../polyfills/symbols.js");
17
17
 
18
- var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
18
+ var _inspect = _interopRequireDefault(require("../jsutils/inspect.js"));
19
19
 
20
- var _toObjMap = _interopRequireDefault(require("../jsutils/toObjMap"));
20
+ var _toObjMap = _interopRequireDefault(require("../jsutils/toObjMap.js"));
21
21
 
22
- var _devAssert = _interopRequireDefault(require("../jsutils/devAssert"));
22
+ var _devAssert = _interopRequireDefault(require("../jsutils/devAssert.js"));
23
23
 
24
- var _instanceOf = _interopRequireDefault(require("../jsutils/instanceOf"));
24
+ var _instanceOf = _interopRequireDefault(require("../jsutils/instanceOf.js"));
25
25
 
26
- var _isObjectLike = _interopRequireDefault(require("../jsutils/isObjectLike"));
26
+ var _isObjectLike = _interopRequireDefault(require("../jsutils/isObjectLike.js"));
27
27
 
28
- var _introspection = require("./introspection");
28
+ var _introspection = require("./introspection.js");
29
29
 
30
- var _directives = require("./directives");
30
+ var _directives = require("./directives.js");
31
31
 
32
- var _definition = require("./definition");
32
+ var _definition = require("./definition.js");
33
33
 
34
34
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
35
 
@@ -331,7 +331,7 @@ var GraphQLSchema = /*#__PURE__*/function () {
331
331
  extensionASTNodes: (_this$extensionASTNod = this.extensionASTNodes) !== null && _this$extensionASTNod !== void 0 ? _this$extensionASTNod : [],
332
332
  assumeValid: this.__validationErrors !== undefined
333
333
  };
334
- } // $FlowFixMe Flow doesn't support computed properties yet
334
+ } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet
335
335
  ;
336
336
 
337
337
  _createClass(GraphQLSchema, [{
@@ -1,5 +1,4 @@
1
1
  // @flow strict
2
-
3
2
  import find from '../polyfills/find';
4
3
  import arrayFrom from '../polyfills/arrayFrom';
5
4
  import objectValues from '../polyfills/objectValues';
@@ -144,7 +143,7 @@ export class GraphQLSchema {
144
143
  // Used as a cache for validateSchema().
145
144
  __validationErrors: ?$ReadOnlyArray<GraphQLError>;
146
145
 
147
- constructor(config: $ReadOnly<GraphQLSchemaConfig>): void {
146
+ constructor(config: $ReadOnly<GraphQLSchemaConfig>) {
148
147
  // If this schema was built from a source known to be valid, then it may be
149
148
  // marked with assumeValid to avoid an additional type system validation.
150
149
  this.__validationErrors = config.assumeValid === true ? [] : undefined;
@@ -357,7 +356,7 @@ export class GraphQLSchema {
357
356
  };
358
357
  }
359
358
 
360
- // $FlowFixMe Flow doesn't support computed properties yet
359
+ // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet
361
360
  get [SYMBOL_TO_STRING_TAG]() {
362
361
  return 'GraphQLSchema';
363
362
  }
package/type/schema.mjs CHANGED
@@ -310,7 +310,7 @@ export var GraphQLSchema = /*#__PURE__*/function () {
310
310
  extensionASTNodes: (_this$extensionASTNod = this.extensionASTNodes) !== null && _this$extensionASTNod !== void 0 ? _this$extensionASTNod : [],
311
311
  assumeValid: this.__validationErrors !== undefined
312
312
  };
313
- } // $FlowFixMe Flow doesn't support computed properties yet
313
+ } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet
314
314
  ;
315
315
 
316
316
  _createClass(GraphQLSchema, [{
package/type/validate.js CHANGED
@@ -6,29 +6,27 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.validateSchema = validateSchema;
7
7
  exports.assertValidSchema = assertValidSchema;
8
8
 
9
- var _find = _interopRequireDefault(require("../polyfills/find"));
9
+ var _find = _interopRequireDefault(require("../polyfills/find.js"));
10
10
 
11
- var _flatMap = _interopRequireDefault(require("../polyfills/flatMap"));
11
+ var _objectValues5 = _interopRequireDefault(require("../polyfills/objectValues.js"));
12
12
 
13
- var _objectValues5 = _interopRequireDefault(require("../polyfills/objectValues"));
13
+ var _inspect = _interopRequireDefault(require("../jsutils/inspect.js"));
14
14
 
15
- var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
15
+ var _GraphQLError = require("../error/GraphQLError.js");
16
16
 
17
- var _GraphQLError = require("../error/GraphQLError");
17
+ var _locatedError = require("../error/locatedError.js");
18
18
 
19
- var _locatedError = require("../error/locatedError");
19
+ var _assertValidName = require("../utilities/assertValidName.js");
20
20
 
21
- var _assertValidName = require("../utilities/assertValidName");
21
+ var _typeComparators = require("../utilities/typeComparators.js");
22
22
 
23
- var _typeComparators = require("../utilities/typeComparators");
23
+ var _schema = require("./schema.js");
24
24
 
25
- var _schema = require("./schema");
25
+ var _introspection = require("./introspection.js");
26
26
 
27
- var _directives = require("./directives");
27
+ var _directives = require("./directives.js");
28
28
 
29
- var _introspection = require("./introspection");
30
-
31
- var _definition = require("./definition");
29
+ var _definition = require("./definition.js");
32
30
 
33
31
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
34
32
 
@@ -166,6 +164,13 @@ function validateDirectives(context) {
166
164
  if (!(0, _definition.isInputType)(arg.type)) {
167
165
  context.reportError("The type of @".concat(directive.name, "(").concat(arg.name, ":) must be Input Type ") + "but got: ".concat((0, _inspect.default)(arg.type), "."), arg.astNode);
168
166
  }
167
+
168
+ if ((0, _definition.isRequiredArgument)(arg) && arg.deprecationReason != null) {
169
+ var _arg$astNode;
170
+
171
+ context.reportError("Required argument @".concat(directive.name, "(").concat(arg.name, ":) cannot be deprecated."), [getDeprecatedDirectiveNode(arg.astNode), // istanbul ignore next (TODO need to write coverage tests)
172
+ (_arg$astNode = arg.astNode) === null || _arg$astNode === void 0 ? void 0 : _arg$astNode.type]);
173
+ }
169
174
  }
170
175
  }
171
176
  }
@@ -248,9 +253,16 @@ function validateFields(context, type) {
248
253
  validateName(context, arg); // Ensure the type is an input type
249
254
 
250
255
  if (!(0, _definition.isInputType)(arg.type)) {
251
- var _arg$astNode;
256
+ var _arg$astNode2;
252
257
 
253
- context.reportError("The type of ".concat(type.name, ".").concat(field.name, "(").concat(argName, ":) must be Input ") + "Type but got: ".concat((0, _inspect.default)(arg.type), "."), (_arg$astNode = arg.astNode) === null || _arg$astNode === void 0 ? void 0 : _arg$astNode.type);
258
+ context.reportError("The type of ".concat(type.name, ".").concat(field.name, "(").concat(argName, ":) must be Input ") + "Type but got: ".concat((0, _inspect.default)(arg.type), "."), (_arg$astNode2 = arg.astNode) === null || _arg$astNode2 === void 0 ? void 0 : _arg$astNode2.type);
259
+ }
260
+
261
+ if ((0, _definition.isRequiredArgument)(arg) && arg.deprecationReason != null) {
262
+ var _arg$astNode3;
263
+
264
+ context.reportError("Required argument ".concat(type.name, ".").concat(field.name, "(").concat(argName, ":) cannot be deprecated."), [getDeprecatedDirectiveNode(arg.astNode), // istanbul ignore next (TODO need to write coverage tests)
265
+ (_arg$astNode3 = arg.astNode) === null || _arg$astNode3 === void 0 ? void 0 : _arg$astNode3.type]);
254
266
  }
255
267
  }
256
268
  }
@@ -431,6 +443,13 @@ function validateInputFields(context, inputObj) {
431
443
 
432
444
  context.reportError("The type of ".concat(inputObj.name, ".").concat(field.name, " must be Input Type ") + "but got: ".concat((0, _inspect.default)(field.type), "."), (_field$astNode2 = field.astNode) === null || _field$astNode2 === void 0 ? void 0 : _field$astNode2.type);
433
445
  }
446
+
447
+ if ((0, _definition.isRequiredInputField)(field) && field.deprecationReason != null) {
448
+ var _field$astNode3;
449
+
450
+ context.reportError("Required input field ".concat(inputObj.name, ".").concat(field.name, " cannot be deprecated."), [getDeprecatedDirectiveNode(field.astNode), // istanbul ignore next (TODO need to write coverage tests)
451
+ (_field$astNode3 = field.astNode) === null || _field$astNode3 === void 0 ? void 0 : _field$astNode3.type]);
452
+ }
434
453
  }
435
454
  }
436
455
 
@@ -491,12 +510,17 @@ function getAllNodes(object) {
491
510
  }
492
511
 
493
512
  function getAllSubNodes(object, getter) {
494
- // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')
495
- return (0, _flatMap.default)(getAllNodes(object), function (item) {
513
+ var subNodes = [];
514
+
515
+ for (var _i32 = 0, _getAllNodes2 = getAllNodes(object); _i32 < _getAllNodes2.length; _i32++) {
496
516
  var _getter;
497
517
 
498
- return (_getter = getter(item)) !== null && _getter !== void 0 ? _getter : [];
499
- });
518
+ var node = _getAllNodes2[_i32];
519
+ // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')
520
+ subNodes = subNodes.concat((_getter = getter(node)) !== null && _getter !== void 0 ? _getter : []);
521
+ }
522
+
523
+ return subNodes;
500
524
  }
501
525
 
502
526
  function getAllImplementsInterfaceNodes(type, iface) {
@@ -514,3 +538,12 @@ function getUnionMemberTypeNodes(union, typeName) {
514
538
  return typeNode.name.value === typeName;
515
539
  });
516
540
  }
541
+
542
+ function getDeprecatedDirectiveNode(definitionNode) {
543
+ var _definitionNode$direc;
544
+
545
+ // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')
546
+ return definitionNode === null || definitionNode === void 0 ? void 0 : (_definitionNode$direc = definitionNode.directives) === null || _definitionNode$direc === void 0 ? void 0 : _definitionNode$direc.find(function (node) {
547
+ return node.name.value === _directives.GraphQLDeprecatedDirective.name;
548
+ });
549
+ }
@@ -1,7 +1,5 @@
1
1
  // @flow strict
2
-
3
2
  import find from '../polyfills/find';
4
- import flatMap from '../polyfills/flatMap';
5
3
  import objectValues from '../polyfills/objectValues';
6
4
 
7
5
  import inspect from '../jsutils/inspect';
@@ -12,6 +10,7 @@ import { locatedError } from '../error/locatedError';
12
10
  import type {
13
11
  ASTNode,
14
12
  NamedTypeNode,
13
+ DirectiveNode,
15
14
  OperationTypeNode,
16
15
  } from '../language/ast';
17
16
 
@@ -27,8 +26,8 @@ import type {
27
26
  GraphQLInputObjectType,
28
27
  } from './definition';
29
28
  import { assertSchema } from './schema';
30
- import { isDirective } from './directives';
31
29
  import { isIntrospectionType } from './introspection';
30
+ import { isDirective, GraphQLDeprecatedDirective } from './directives';
32
31
  import {
33
32
  isObjectType,
34
33
  isInterfaceType,
@@ -40,6 +39,7 @@ import {
40
39
  isInputType,
41
40
  isOutputType,
42
41
  isRequiredArgument,
42
+ isRequiredInputField,
43
43
  } from './definition';
44
44
 
45
45
  /**
@@ -110,7 +110,7 @@ class SchemaValidationContext {
110
110
  }
111
111
  }
112
112
 
113
- function validateRootTypes(context) {
113
+ function validateRootTypes(context: SchemaValidationContext): void {
114
114
  const schema = context.schema;
115
115
  const queryType = schema.getQueryType();
116
116
  if (!queryType) {
@@ -185,6 +185,17 @@ function validateDirectives(context: SchemaValidationContext): void {
185
185
  arg.astNode,
186
186
  );
187
187
  }
188
+
189
+ if (isRequiredArgument(arg) && arg.deprecationReason != null) {
190
+ context.reportError(
191
+ `Required argument @${directive.name}(${arg.name}:) cannot be deprecated.`,
192
+ [
193
+ getDeprecatedDirectiveNode(arg.astNode),
194
+ // istanbul ignore next (TODO need to write coverage tests)
195
+ arg.astNode?.type,
196
+ ],
197
+ );
198
+ }
188
199
  }
189
200
  }
190
201
  }
@@ -290,6 +301,17 @@ function validateFields(
290
301
  arg.astNode?.type,
291
302
  );
292
303
  }
304
+
305
+ if (isRequiredArgument(arg) && arg.deprecationReason != null) {
306
+ context.reportError(
307
+ `Required argument ${type.name}.${field.name}(${argName}:) cannot be deprecated.`,
308
+ [
309
+ getDeprecatedDirectiveNode(arg.astNode),
310
+ // istanbul ignore next (TODO need to write coverage tests)
311
+ arg.astNode?.type,
312
+ ],
313
+ );
314
+ }
293
315
  }
294
316
  }
295
317
  }
@@ -525,12 +547,23 @@ function validateInputFields(
525
547
  field.astNode?.type,
526
548
  );
527
549
  }
550
+
551
+ if (isRequiredInputField(field) && field.deprecationReason != null) {
552
+ context.reportError(
553
+ `Required input field ${inputObj.name}.${field.name} cannot be deprecated.`,
554
+ [
555
+ getDeprecatedDirectiveNode(field.astNode),
556
+ // istanbul ignore next (TODO need to write coverage tests)
557
+ field.astNode?.type,
558
+ ],
559
+ );
560
+ }
528
561
  }
529
562
  }
530
563
 
531
564
  function createInputObjectCircularRefsValidator(
532
565
  context: SchemaValidationContext,
533
- ) {
566
+ ): (GraphQLInputObjectType) => void {
534
567
  // Modified copy of algorithm from 'src/validation/rules/NoFragmentCycles.js'.
535
568
  // Tracks already visited types to maintain O(N) and to ensure that cycles
536
569
  // are not redundantly reported.
@@ -547,7 +580,7 @@ function createInputObjectCircularRefsValidator(
547
580
  // This does a straight-forward DFS to find cycles.
548
581
  // It does not terminate when a cycle was found but continues to explore
549
582
  // the graph to find all possible cycles.
550
- function detectCycleRecursive(inputObj: GraphQLInputObjectType) {
583
+ function detectCycleRecursive(inputObj: GraphQLInputObjectType): void {
551
584
  if (visitedTypes[inputObj.name]) {
552
585
  return;
553
586
  }
@@ -601,8 +634,12 @@ function getAllSubNodes<T: ASTNode, K: ASTNode, L: ASTNode>(
601
634
  object: SDLDefinedObject<T, K>,
602
635
  getter: (T | K) => ?(L | $ReadOnlyArray<L>),
603
636
  ): $ReadOnlyArray<L> {
604
- // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')
605
- return flatMap(getAllNodes(object), (item) => getter(item) ?? []);
637
+ let subNodes = [];
638
+ for (const node of getAllNodes(object)) {
639
+ // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')
640
+ subNodes = subNodes.concat(getter(node) ?? []);
641
+ }
642
+ return subNodes;
606
643
  }
607
644
 
608
645
  function getAllImplementsInterfaceNodes(
@@ -622,3 +659,12 @@ function getUnionMemberTypeNodes(
622
659
  (typeNode) => typeNode.name.value === typeName,
623
660
  );
624
661
  }
662
+
663
+ function getDeprecatedDirectiveNode(
664
+ definitionNode: ?{ +directives?: $ReadOnlyArray<DirectiveNode>, ... },
665
+ ): ?DirectiveNode {
666
+ // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')
667
+ return definitionNode?.directives?.find(
668
+ (node) => node.name.value === GraphQLDeprecatedDirective.name,
669
+ );
670
+ }
package/type/validate.mjs CHANGED
@@ -1,5 +1,4 @@
1
1
  import find from "../polyfills/find.mjs";
2
- import flatMap from "../polyfills/flatMap.mjs";
3
2
  import objectValues from "../polyfills/objectValues.mjs";
4
3
  import inspect from "../jsutils/inspect.mjs";
5
4
  import { GraphQLError } from "../error/GraphQLError.mjs";
@@ -7,9 +6,9 @@ import { locatedError } from "../error/locatedError.mjs";
7
6
  import { isValidNameError } from "../utilities/assertValidName.mjs";
8
7
  import { isEqualType, isTypeSubTypeOf } from "../utilities/typeComparators.mjs";
9
8
  import { assertSchema } from "./schema.mjs";
10
- import { isDirective } from "./directives.mjs";
11
9
  import { isIntrospectionType } from "./introspection.mjs";
12
- import { isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType, isNamedType, isNonNullType, isInputType, isOutputType, isRequiredArgument } from "./definition.mjs";
10
+ import { isDirective, GraphQLDeprecatedDirective } from "./directives.mjs";
11
+ import { isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType, isNamedType, isNonNullType, isInputType, isOutputType, isRequiredArgument, isRequiredInputField } from "./definition.mjs";
13
12
  /**
14
13
  * Implements the "Type Validation" sub-sections of the specification's
15
14
  * "Type System" section.
@@ -144,6 +143,13 @@ function validateDirectives(context) {
144
143
  if (!isInputType(arg.type)) {
145
144
  context.reportError("The type of @".concat(directive.name, "(").concat(arg.name, ":) must be Input Type ") + "but got: ".concat(inspect(arg.type), "."), arg.astNode);
146
145
  }
146
+
147
+ if (isRequiredArgument(arg) && arg.deprecationReason != null) {
148
+ var _arg$astNode;
149
+
150
+ context.reportError("Required argument @".concat(directive.name, "(").concat(arg.name, ":) cannot be deprecated."), [getDeprecatedDirectiveNode(arg.astNode), // istanbul ignore next (TODO need to write coverage tests)
151
+ (_arg$astNode = arg.astNode) === null || _arg$astNode === void 0 ? void 0 : _arg$astNode.type]);
152
+ }
147
153
  }
148
154
  }
149
155
  }
@@ -226,9 +232,16 @@ function validateFields(context, type) {
226
232
  validateName(context, arg); // Ensure the type is an input type
227
233
 
228
234
  if (!isInputType(arg.type)) {
229
- var _arg$astNode;
235
+ var _arg$astNode2;
230
236
 
231
- context.reportError("The type of ".concat(type.name, ".").concat(field.name, "(").concat(argName, ":) must be Input ") + "Type but got: ".concat(inspect(arg.type), "."), (_arg$astNode = arg.astNode) === null || _arg$astNode === void 0 ? void 0 : _arg$astNode.type);
237
+ context.reportError("The type of ".concat(type.name, ".").concat(field.name, "(").concat(argName, ":) must be Input ") + "Type but got: ".concat(inspect(arg.type), "."), (_arg$astNode2 = arg.astNode) === null || _arg$astNode2 === void 0 ? void 0 : _arg$astNode2.type);
238
+ }
239
+
240
+ if (isRequiredArgument(arg) && arg.deprecationReason != null) {
241
+ var _arg$astNode3;
242
+
243
+ context.reportError("Required argument ".concat(type.name, ".").concat(field.name, "(").concat(argName, ":) cannot be deprecated."), [getDeprecatedDirectiveNode(arg.astNode), // istanbul ignore next (TODO need to write coverage tests)
244
+ (_arg$astNode3 = arg.astNode) === null || _arg$astNode3 === void 0 ? void 0 : _arg$astNode3.type]);
232
245
  }
233
246
  }
234
247
  }
@@ -409,6 +422,13 @@ function validateInputFields(context, inputObj) {
409
422
 
410
423
  context.reportError("The type of ".concat(inputObj.name, ".").concat(field.name, " must be Input Type ") + "but got: ".concat(inspect(field.type), "."), (_field$astNode2 = field.astNode) === null || _field$astNode2 === void 0 ? void 0 : _field$astNode2.type);
411
424
  }
425
+
426
+ if (isRequiredInputField(field) && field.deprecationReason != null) {
427
+ var _field$astNode3;
428
+
429
+ context.reportError("Required input field ".concat(inputObj.name, ".").concat(field.name, " cannot be deprecated."), [getDeprecatedDirectiveNode(field.astNode), // istanbul ignore next (TODO need to write coverage tests)
430
+ (_field$astNode3 = field.astNode) === null || _field$astNode3 === void 0 ? void 0 : _field$astNode3.type]);
431
+ }
412
432
  }
413
433
  }
414
434
 
@@ -469,12 +489,17 @@ function getAllNodes(object) {
469
489
  }
470
490
 
471
491
  function getAllSubNodes(object, getter) {
472
- // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')
473
- return flatMap(getAllNodes(object), function (item) {
492
+ var subNodes = [];
493
+
494
+ for (var _i32 = 0, _getAllNodes2 = getAllNodes(object); _i32 < _getAllNodes2.length; _i32++) {
474
495
  var _getter;
475
496
 
476
- return (_getter = getter(item)) !== null && _getter !== void 0 ? _getter : [];
477
- });
497
+ var node = _getAllNodes2[_i32];
498
+ // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')
499
+ subNodes = subNodes.concat((_getter = getter(node)) !== null && _getter !== void 0 ? _getter : []);
500
+ }
501
+
502
+ return subNodes;
478
503
  }
479
504
 
480
505
  function getAllImplementsInterfaceNodes(type, iface) {
@@ -492,3 +517,12 @@ function getUnionMemberTypeNodes(union, typeName) {
492
517
  return typeNode.name.value === typeName;
493
518
  });
494
519
  }
520
+
521
+ function getDeprecatedDirectiveNode(definitionNode) {
522
+ var _definitionNode$direc;
523
+
524
+ // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')
525
+ return definitionNode === null || definitionNode === void 0 ? void 0 : (_definitionNode$direc = definitionNode.directives) === null || _definitionNode$direc === void 0 ? void 0 : _definitionNode$direc.find(function (node) {
526
+ return node.name.value === GraphQLDeprecatedDirective.name;
527
+ });
528
+ }
@@ -6,19 +6,19 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.visitWithTypeInfo = visitWithTypeInfo;
7
7
  exports.TypeInfo = void 0;
8
8
 
9
- var _find = _interopRequireDefault(require("../polyfills/find"));
9
+ var _find = _interopRequireDefault(require("../polyfills/find.js"));
10
10
 
11
- var _kinds = require("../language/kinds");
11
+ var _kinds = require("../language/kinds.js");
12
12
 
13
- var _ast = require("../language/ast");
13
+ var _ast = require("../language/ast.js");
14
14
 
15
- var _visitor = require("../language/visitor");
15
+ var _visitor = require("../language/visitor.js");
16
16
 
17
- var _definition = require("../type/definition");
17
+ var _definition = require("../type/definition.js");
18
18
 
19
- var _introspection = require("../type/introspection");
19
+ var _introspection = require("../type/introspection.js");
20
20
 
21
- var _typeFromAST = require("./typeFromAST");
21
+ var _typeFromAST = require("./typeFromAST.js");
22
22
 
23
23
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
24
 
@@ -1,5 +1,4 @@
1
1
  // @flow strict
2
-
3
2
  import find from '../polyfills/find';
4
3
 
5
4
  import type { Visitor } from '../language/visitor';
@@ -66,7 +65,7 @@ export class TypeInfo {
66
65
  // Initial type may be provided in rare cases to facilitate traversals
67
66
  // beginning somewhere other than documents.
68
67
  initialType?: GraphQLType,
69
- ): void {
68
+ ) {
70
69
  this._schema = schema;
71
70
  this._typeStack = [];
72
71
  this._parentTypeStack = [];
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.assertValidName = assertValidName;
7
7
  exports.isValidNameError = isValidNameError;
8
8
 
9
- var _devAssert = _interopRequireDefault(require("../jsutils/devAssert"));
9
+ var _devAssert = _interopRequireDefault(require("../jsutils/devAssert.js"));
10
10
 
11
- var _GraphQLError = require("../error/GraphQLError");
11
+ var _GraphQLError = require("../error/GraphQLError.js");
12
12
 
13
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
14
 
@@ -1,5 +1,4 @@
1
1
  // @flow strict
2
-
3
2
  import devAssert from '../jsutils/devAssert';
4
3
 
5
4
  import { GraphQLError } from '../error/GraphQLError';
@@ -5,25 +5,23 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.astFromValue = astFromValue;
7
7
 
8
- var _isFinite = _interopRequireDefault(require("../polyfills/isFinite"));
8
+ var _isFinite = _interopRequireDefault(require("../polyfills/isFinite.js"));
9
9
 
10
- var _arrayFrom3 = _interopRequireDefault(require("../polyfills/arrayFrom"));
10
+ var _objectValues3 = _interopRequireDefault(require("../polyfills/objectValues.js"));
11
11
 
12
- var _objectValues3 = _interopRequireDefault(require("../polyfills/objectValues"));
12
+ var _inspect = _interopRequireDefault(require("../jsutils/inspect.js"));
13
13
 
14
- var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
14
+ var _invariant = _interopRequireDefault(require("../jsutils/invariant.js"));
15
15
 
16
- var _invariant = _interopRequireDefault(require("../jsutils/invariant"));
16
+ var _isObjectLike = _interopRequireDefault(require("../jsutils/isObjectLike.js"));
17
17
 
18
- var _isObjectLike = _interopRequireDefault(require("../jsutils/isObjectLike"));
18
+ var _safeArrayFrom = _interopRequireDefault(require("../jsutils/safeArrayFrom.js"));
19
19
 
20
- var _isCollection = _interopRequireDefault(require("../jsutils/isCollection"));
20
+ var _kinds = require("../language/kinds.js");
21
21
 
22
- var _kinds = require("../language/kinds");
22
+ var _scalars = require("../type/scalars.js");
23
23
 
24
- var _scalars = require("../type/scalars");
25
-
26
- var _definition = require("../type/definition");
24
+ var _definition = require("../type/definition.js");
27
25
 
28
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
27
 
@@ -75,13 +73,13 @@ function astFromValue(value, type) {
75
73
 
76
74
  if ((0, _definition.isListType)(type)) {
77
75
  var itemType = type.ofType;
76
+ var items = (0, _safeArrayFrom.default)(value);
78
77
 
79
- if ((0, _isCollection.default)(value)) {
80
- var valuesNodes = []; // Since we transpile for-of in loose mode it doesn't support iterators
81
- // and it's required to first convert iteratable into array
78
+ if (items != null) {
79
+ var valuesNodes = [];
82
80
 
83
- for (var _i2 = 0, _arrayFrom2 = (0, _arrayFrom3.default)(value); _i2 < _arrayFrom2.length; _i2++) {
84
- var item = _arrayFrom2[_i2];
81
+ for (var _i2 = 0; _i2 < items.length; _i2++) {
82
+ var item = items[_i2];
85
83
  var itemNode = astFromValue(item, itemType);
86
84
 
87
85
  if (itemNode != null) {
@@ -1,13 +1,11 @@
1
1
  // @flow strict
2
-
3
2
  import isFinite from '../polyfills/isFinite';
4
- import arrayFrom from '../polyfills/arrayFrom';
5
3
  import objectValues from '../polyfills/objectValues';
6
4
 
7
5
  import inspect from '../jsutils/inspect';
8
6
  import invariant from '../jsutils/invariant';
9
7
  import isObjectLike from '../jsutils/isObjectLike';
10
- import isCollection from '../jsutils/isCollection';
8
+ import safeArrayFrom from '../jsutils/safeArrayFrom';
11
9
 
12
10
  import type { ValueNode } from '../language/ast';
13
11
  import { Kind } from '../language/kinds';
@@ -66,11 +64,11 @@ export function astFromValue(value: mixed, type: GraphQLInputType): ?ValueNode {
66
64
  // the value is not an array, convert the value using the list's item type.
67
65
  if (isListType(type)) {
68
66
  const itemType = type.ofType;
69
- if (isCollection(value)) {
67
+
68
+ const items = safeArrayFrom(value);
69
+ if (items != null) {
70
70
  const valuesNodes = [];
71
- // Since we transpile for-of in loose mode it doesn't support iterators
72
- // and it's required to first convert iteratable into array
73
- for (const item of arrayFrom(value)) {
71
+ for (const item of items) {
74
72
  const itemNode = astFromValue(item, itemType);
75
73
  if (itemNode != null) {
76
74
  valuesNodes.push(itemNode);
@@ -78,6 +76,7 @@ export function astFromValue(value: mixed, type: GraphQLInputType): ?ValueNode {
78
76
  }
79
77
  return { kind: Kind.LIST, values: valuesNodes };
80
78
  }
79
+
81
80
  return astFromValue(value, itemType);
82
81
  }
83
82
 
@@ -1,10 +1,9 @@
1
1
  import isFinite from "../polyfills/isFinite.mjs";
2
- import arrayFrom from "../polyfills/arrayFrom.mjs";
3
2
  import objectValues from "../polyfills/objectValues.mjs";
4
3
  import inspect from "../jsutils/inspect.mjs";
5
4
  import invariant from "../jsutils/invariant.mjs";
6
5
  import isObjectLike from "../jsutils/isObjectLike.mjs";
7
- import isCollection from "../jsutils/isCollection.mjs";
6
+ import safeArrayFrom from "../jsutils/safeArrayFrom.mjs";
8
7
  import { Kind } from "../language/kinds.mjs";
9
8
  import { GraphQLID } from "../type/scalars.mjs";
10
9
  import { isLeafType, isEnumType, isInputObjectType, isListType, isNonNullType } from "../type/definition.mjs";
@@ -57,13 +56,13 @@ export function astFromValue(value, type) {
57
56
 
58
57
  if (isListType(type)) {
59
58
  var itemType = type.ofType;
59
+ var items = safeArrayFrom(value);
60
60
 
61
- if (isCollection(value)) {
62
- var valuesNodes = []; // Since we transpile for-of in loose mode it doesn't support iterators
63
- // and it's required to first convert iteratable into array
61
+ if (items != null) {
62
+ var valuesNodes = [];
64
63
 
65
- for (var _i2 = 0, _arrayFrom2 = arrayFrom(value); _i2 < _arrayFrom2.length; _i2++) {
66
- var item = _arrayFrom2[_i2];
64
+ for (var _i2 = 0; _i2 < items.length; _i2++) {
65
+ var item = items[_i2];
67
66
  var itemNode = astFromValue(item, itemType);
68
67
 
69
68
  if (itemNode != null) {