graphql 15.2.0 → 15.5.0

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 (338) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +19 -10
  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 +11 -15
  17. package/execution/execute.js +110 -110
  18. package/execution/execute.js.flow +132 -139
  19. package/execution/execute.mjs +92 -88
  20. package/execution/index.d.ts +1 -0
  21. package/execution/index.js +3 -3
  22. package/execution/index.js.flow +6 -2
  23. package/execution/values.js +11 -11
  24. package/execution/values.js.flow +0 -1
  25. package/graphql.js +5 -5
  26. package/graphql.js.flow +0 -1
  27. package/index.d.ts +2 -0
  28. package/index.js +9 -9
  29. package/index.js.flow +5 -2
  30. package/jsutils/ObjMap.js.flow +0 -1
  31. package/jsutils/Path.js.flow +0 -1
  32. package/jsutils/PromiseOrValue.js.flow +0 -1
  33. package/jsutils/defineInspect.js +2 -2
  34. package/jsutils/defineInspect.js.flow +0 -1
  35. package/jsutils/devAssert.js.flow +0 -1
  36. package/jsutils/didYouMean.js.flow +0 -1
  37. package/jsutils/identityFunc.js.flow +0 -1
  38. package/jsutils/inspect.js +1 -2
  39. package/jsutils/inspect.js.flow +10 -8
  40. package/jsutils/inspect.mjs +1 -1
  41. package/jsutils/instanceOf.js.flow +2 -3
  42. package/jsutils/invariant.js.flow +0 -1
  43. package/jsutils/isAsyncIterable.js +13 -0
  44. package/jsutils/isAsyncIterable.js.flow +14 -0
  45. package/jsutils/isAsyncIterable.mjs +10 -0
  46. package/jsutils/isObjectLike.js.flow +0 -1
  47. package/jsutils/isPromise.js.flow +0 -1
  48. package/jsutils/keyMap.js.flow +0 -1
  49. package/jsutils/keyValMap.js.flow +0 -1
  50. package/jsutils/mapValue.js +1 -1
  51. package/jsutils/mapValue.js.flow +0 -1
  52. package/jsutils/memoize3.js +2 -5
  53. package/jsutils/memoize3.js.flow +2 -5
  54. package/jsutils/memoize3.mjs +2 -5
  55. package/jsutils/naturalCompare.js +69 -0
  56. package/jsutils/naturalCompare.js.flow +59 -0
  57. package/jsutils/naturalCompare.mjs +61 -0
  58. package/jsutils/nodejsCustomInspectSymbol.js.flow +0 -1
  59. package/jsutils/printPathArray.js.flow +0 -1
  60. package/jsutils/promiseForObject.js.flow +0 -1
  61. package/jsutils/promiseReduce.js +1 -1
  62. package/jsutils/promiseReduce.js.flow +0 -1
  63. package/jsutils/safeArrayFrom.js +73 -0
  64. package/jsutils/safeArrayFrom.js.flow +59 -0
  65. package/jsutils/safeArrayFrom.mjs +66 -0
  66. package/jsutils/suggestionList.js +5 -1
  67. package/jsutils/suggestionList.js.flow +3 -2
  68. package/jsutils/suggestionList.mjs +3 -1
  69. package/jsutils/toObjMap.js +1 -1
  70. package/jsutils/toObjMap.js.flow +0 -1
  71. package/language/ast.js +1 -1
  72. package/language/ast.js.flow +0 -1
  73. package/language/blockString.d.ts +1 -1
  74. package/language/blockString.js +53 -32
  75. package/language/blockString.js.flow +51 -36
  76. package/language/blockString.mjs +54 -33
  77. package/language/directiveLocation.js.flow +0 -1
  78. package/language/experimentalOnlineParser/grammar.d.ts +1006 -0
  79. package/language/experimentalOnlineParser/grammar.js +987 -0
  80. package/language/experimentalOnlineParser/grammar.js.flow +1000 -0
  81. package/language/experimentalOnlineParser/grammar.mjs +980 -0
  82. package/language/experimentalOnlineParser/index.d.ts +6 -0
  83. package/language/experimentalOnlineParser/index.js +31 -0
  84. package/language/experimentalOnlineParser/index.js.flow +7 -0
  85. package/language/experimentalOnlineParser/index.mjs +1 -0
  86. package/language/experimentalOnlineParser/onlineParser.d.ts +125 -0
  87. package/language/experimentalOnlineParser/onlineParser.js +604 -0
  88. package/language/experimentalOnlineParser/onlineParser.js.flow +723 -0
  89. package/language/experimentalOnlineParser/onlineParser.mjs +587 -0
  90. package/language/index.js +12 -12
  91. package/language/index.js.flow +0 -1
  92. package/language/kinds.js.flow +0 -1
  93. package/language/lexer.js +242 -183
  94. package/language/lexer.js.flow +188 -184
  95. package/language/lexer.mjs +238 -179
  96. package/language/location.js.flow +0 -1
  97. package/language/parser.js +73 -68
  98. package/language/parser.js.flow +62 -57
  99. package/language/parser.mjs +64 -60
  100. package/language/predicates.js +1 -1
  101. package/language/predicates.js.flow +0 -1
  102. package/language/printLocation.js +1 -1
  103. package/language/printLocation.js.flow +0 -1
  104. package/language/printer.js +20 -13
  105. package/language/printer.js.flow +26 -25
  106. package/language/printer.mjs +18 -11
  107. package/language/source.d.ts +12 -6
  108. package/language/source.js +25 -9
  109. package/language/source.js.flow +26 -9
  110. package/language/source.mjs +19 -7
  111. package/language/tokenKind.js.flow +0 -1
  112. package/language/visitor.d.ts +3 -3
  113. package/language/visitor.js +5 -5
  114. package/language/visitor.js.flow +3 -4
  115. package/language/visitor.mjs +3 -3
  116. package/package.json +2 -3
  117. package/polyfills/arrayFrom.js +2 -2
  118. package/polyfills/arrayFrom.js.flow +1 -2
  119. package/polyfills/arrayFrom.mjs +1 -1
  120. package/polyfills/find.js +1 -1
  121. package/polyfills/find.js.flow +1 -2
  122. package/polyfills/find.mjs +1 -1
  123. package/polyfills/isFinite.js +1 -1
  124. package/polyfills/isFinite.js.flow +1 -2
  125. package/polyfills/isFinite.mjs +1 -1
  126. package/polyfills/isInteger.js +1 -1
  127. package/polyfills/isInteger.js.flow +1 -2
  128. package/polyfills/isInteger.mjs +1 -1
  129. package/polyfills/objectEntries.js +1 -1
  130. package/polyfills/objectEntries.js.flow +1 -2
  131. package/polyfills/objectEntries.mjs +1 -1
  132. package/polyfills/objectValues.js +1 -1
  133. package/polyfills/objectValues.js.flow +1 -2
  134. package/polyfills/objectValues.mjs +1 -1
  135. package/polyfills/symbols.js +3 -5
  136. package/polyfills/symbols.js.flow +9 -6
  137. package/polyfills/symbols.mjs +3 -5
  138. package/subscription/index.js +1 -1
  139. package/subscription/index.js.flow +0 -1
  140. package/subscription/mapAsyncIterator.js +2 -2
  141. package/subscription/mapAsyncIterator.js.flow +8 -9
  142. package/subscription/mapAsyncIterator.mjs +1 -1
  143. package/subscription/subscribe.js +61 -73
  144. package/subscription/subscribe.js.flow +71 -85
  145. package/subscription/subscribe.mjs +53 -65
  146. package/type/definition.d.ts +17 -9
  147. package/type/definition.js +37 -32
  148. package/type/definition.js.flow +93 -63
  149. package/type/definition.mjs +19 -14
  150. package/type/directives.js +17 -16
  151. package/type/directives.js.flow +20 -13
  152. package/type/directives.mjs +6 -5
  153. package/type/index.js +6 -6
  154. package/type/index.js.flow +0 -1
  155. package/type/introspection.js +86 -65
  156. package/type/introspection.js.flow +75 -43
  157. package/type/introspection.mjs +79 -58
  158. package/type/scalars.js +9 -9
  159. package/type/scalars.js.flow +1 -2
  160. package/type/scalars.mjs +1 -1
  161. package/type/schema.js +13 -13
  162. package/type/schema.js.flow +2 -3
  163. package/type/schema.mjs +1 -1
  164. package/type/validate.js +52 -19
  165. package/type/validate.js.flow +54 -8
  166. package/type/validate.mjs +43 -9
  167. package/utilities/TypeInfo.js +7 -7
  168. package/utilities/TypeInfo.js.flow +1 -2
  169. package/utilities/assertValidName.js +2 -2
  170. package/utilities/assertValidName.js.flow +0 -1
  171. package/utilities/astFromValue.js +14 -16
  172. package/utilities/astFromValue.js.flow +6 -7
  173. package/utilities/astFromValue.mjs +6 -7
  174. package/utilities/buildASTSchema.js +17 -27
  175. package/utilities/buildASTSchema.js.flow +5 -21
  176. package/utilities/buildASTSchema.mjs +11 -21
  177. package/utilities/buildClientSchema.js +16 -15
  178. package/utilities/buildClientSchema.js.flow +28 -12
  179. package/utilities/buildClientSchema.mjs +5 -4
  180. package/utilities/coerceInputValue.js +17 -18
  181. package/utilities/coerceInputValue.js.flow +12 -10
  182. package/utilities/coerceInputValue.mjs +7 -7
  183. package/utilities/concatAST.js +9 -8
  184. package/utilities/concatAST.js.flow +8 -8
  185. package/utilities/concatAST.mjs +9 -6
  186. package/utilities/extendSchema.js +26 -19
  187. package/utilities/extendSchema.js.flow +19 -7
  188. package/utilities/extendSchema.mjs +8 -1
  189. package/utilities/findBreakingChanges.js +15 -11
  190. package/utilities/findBreakingChanges.js.flow +6 -3
  191. package/utilities/findBreakingChanges.mjs +5 -2
  192. package/utilities/findDeprecatedUsages.js +2 -2
  193. package/utilities/findDeprecatedUsages.js.flow +0 -1
  194. package/utilities/getIntrospectionQuery.d.ts +6 -0
  195. package/utilities/getIntrospectionQuery.js +8 -2
  196. package/utilities/getIntrospectionQuery.js.flow +17 -5
  197. package/utilities/getIntrospectionQuery.mjs +8 -2
  198. package/utilities/getOperationAST.js +1 -1
  199. package/utilities/getOperationAST.js.flow +0 -1
  200. package/utilities/getOperationRootType.js +1 -1
  201. package/utilities/getOperationRootType.js.flow +0 -1
  202. package/utilities/index.d.ts +3 -0
  203. package/utilities/index.js +22 -22
  204. package/utilities/index.js.flow +0 -1
  205. package/utilities/introspectionFromSchema.js +7 -5
  206. package/utilities/introspectionFromSchema.js.flow +2 -1
  207. package/utilities/introspectionFromSchema.mjs +3 -1
  208. package/utilities/lexicographicSortSchema.js +13 -9
  209. package/utilities/lexicographicSortSchema.js.flow +21 -13
  210. package/utilities/lexicographicSortSchema.mjs +5 -2
  211. package/utilities/printSchema.js +15 -16
  212. package/utilities/printSchema.js.flow +23 -16
  213. package/utilities/printSchema.mjs +5 -6
  214. package/utilities/separateOperations.js +46 -42
  215. package/utilities/separateOperations.js.flow +46 -37
  216. package/utilities/separateOperations.mjs +44 -40
  217. package/utilities/stripIgnoredCharacters.js +6 -16
  218. package/utilities/stripIgnoredCharacters.js.flow +4 -13
  219. package/utilities/stripIgnoredCharacters.mjs +3 -10
  220. package/utilities/typeComparators.js +1 -1
  221. package/utilities/typeComparators.js.flow +0 -1
  222. package/utilities/typeFromAST.js +6 -6
  223. package/utilities/typeFromAST.js.flow +2 -3
  224. package/utilities/typeFromAST.mjs +2 -2
  225. package/utilities/typedQueryDocumentNode.d.ts +20 -0
  226. package/utilities/valueFromAST.js +6 -6
  227. package/utilities/valueFromAST.js.flow +4 -2
  228. package/utilities/valueFromASTUntyped.js +4 -4
  229. package/utilities/valueFromASTUntyped.js.flow +0 -1
  230. package/validation/ValidationContext.js +3 -3
  231. package/validation/ValidationContext.js.flow +3 -4
  232. package/validation/index.js +38 -38
  233. package/validation/index.js.flow +0 -1
  234. package/validation/rules/ExecutableDefinitions.js +1 -1
  235. package/validation/rules/ExecutableDefinitions.js.flow +0 -1
  236. package/validation/rules/ExecutableDefinitionsRule.js +3 -3
  237. package/validation/rules/ExecutableDefinitionsRule.js.flow +0 -1
  238. package/validation/rules/FieldsOnCorrectTypeRule.js +8 -6
  239. package/validation/rules/FieldsOnCorrectTypeRule.js.flow +2 -2
  240. package/validation/rules/FieldsOnCorrectTypeRule.mjs +2 -1
  241. package/validation/rules/FragmentsOnCompositeTypesRule.js +4 -4
  242. package/validation/rules/FragmentsOnCompositeTypesRule.js.flow +0 -1
  243. package/validation/rules/KnownArgumentNamesRule.js +5 -5
  244. package/validation/rules/KnownArgumentNamesRule.js.flow +1 -1
  245. package/validation/rules/KnownDirectivesRule.js +6 -6
  246. package/validation/rules/KnownDirectivesRule.js.flow +4 -3
  247. package/validation/rules/KnownFragmentNamesRule.js +1 -1
  248. package/validation/rules/KnownFragmentNamesRule.js.flow +0 -1
  249. package/validation/rules/KnownTypeNamesRule.js +6 -6
  250. package/validation/rules/KnownTypeNamesRule.js.flow +1 -2
  251. package/validation/rules/LoneAnonymousOperationRule.js +2 -2
  252. package/validation/rules/LoneAnonymousOperationRule.js.flow +0 -1
  253. package/validation/rules/LoneSchemaDefinition.js +1 -1
  254. package/validation/rules/LoneSchemaDefinition.js.flow +0 -1
  255. package/validation/rules/LoneSchemaDefinitionRule.js +1 -1
  256. package/validation/rules/LoneSchemaDefinitionRule.js.flow +0 -1
  257. package/validation/rules/NoFragmentCyclesRule.js +1 -1
  258. package/validation/rules/NoFragmentCyclesRule.js.flow +1 -2
  259. package/validation/rules/NoUndefinedVariablesRule.js +1 -1
  260. package/validation/rules/NoUndefinedVariablesRule.js.flow +0 -1
  261. package/validation/rules/NoUnusedFragmentsRule.js +1 -1
  262. package/validation/rules/NoUnusedFragmentsRule.js.flow +0 -1
  263. package/validation/rules/NoUnusedVariablesRule.js +1 -1
  264. package/validation/rules/NoUnusedVariablesRule.js.flow +0 -1
  265. package/validation/rules/OverlappingFieldsCanBeMergedRule.js +20 -20
  266. package/validation/rules/OverlappingFieldsCanBeMergedRule.js.flow +14 -14
  267. package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +12 -12
  268. package/validation/rules/PossibleFragmentSpreadsRule.js +5 -5
  269. package/validation/rules/PossibleFragmentSpreadsRule.js.flow +5 -2
  270. package/validation/rules/PossibleTypeExtensions.js +1 -1
  271. package/validation/rules/PossibleTypeExtensions.js.flow +0 -1
  272. package/validation/rules/PossibleTypeExtensionsRule.js +8 -8
  273. package/validation/rules/PossibleTypeExtensionsRule.js.flow +6 -4
  274. package/validation/rules/ProvidedRequiredArgumentsRule.js +7 -7
  275. package/validation/rules/ProvidedRequiredArgumentsRule.js.flow +4 -3
  276. package/validation/rules/ScalarLeafsRule.js +3 -3
  277. package/validation/rules/ScalarLeafsRule.js.flow +0 -1
  278. package/validation/rules/SingleFieldSubscriptionsRule.js +1 -1
  279. package/validation/rules/SingleFieldSubscriptionsRule.js.flow +0 -1
  280. package/validation/rules/UniqueArgumentNamesRule.js +1 -1
  281. package/validation/rules/UniqueArgumentNamesRule.js.flow +0 -1
  282. package/validation/rules/UniqueDirectiveNames.js +1 -1
  283. package/validation/rules/UniqueDirectiveNames.js.flow +0 -1
  284. package/validation/rules/UniqueDirectiveNamesRule.js +2 -2
  285. package/validation/rules/UniqueDirectiveNamesRule.js.flow +0 -1
  286. package/validation/rules/UniqueDirectiveNamesRule.mjs +1 -1
  287. package/validation/rules/UniqueDirectivesPerLocationRule.js +4 -4
  288. package/validation/rules/UniqueDirectivesPerLocationRule.js.flow +0 -1
  289. package/validation/rules/UniqueEnumValueNames.js +1 -1
  290. package/validation/rules/UniqueEnumValueNames.js.flow +0 -1
  291. package/validation/rules/UniqueEnumValueNamesRule.js +2 -2
  292. package/validation/rules/UniqueEnumValueNamesRule.js.flow +7 -2
  293. package/validation/rules/UniqueFieldDefinitionNames.js +1 -1
  294. package/validation/rules/UniqueFieldDefinitionNames.js.flow +0 -1
  295. package/validation/rules/UniqueFieldDefinitionNamesRule.js +3 -3
  296. package/validation/rules/UniqueFieldDefinitionNamesRule.js.flow +13 -4
  297. package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +1 -1
  298. package/validation/rules/UniqueFragmentNamesRule.js +1 -1
  299. package/validation/rules/UniqueFragmentNamesRule.js.flow +0 -1
  300. package/validation/rules/UniqueInputFieldNamesRule.js +1 -1
  301. package/validation/rules/UniqueInputFieldNamesRule.js.flow +0 -1
  302. package/validation/rules/UniqueOperationNamesRule.js +1 -1
  303. package/validation/rules/UniqueOperationNamesRule.js.flow +0 -1
  304. package/validation/rules/UniqueOperationTypes.js +1 -1
  305. package/validation/rules/UniqueOperationTypes.js.flow +0 -1
  306. package/validation/rules/UniqueOperationTypesRule.js +1 -1
  307. package/validation/rules/UniqueOperationTypesRule.js.flow +7 -2
  308. package/validation/rules/UniqueTypeNames.js +1 -1
  309. package/validation/rules/UniqueTypeNames.js.flow +0 -1
  310. package/validation/rules/UniqueTypeNamesRule.js +2 -2
  311. package/validation/rules/UniqueTypeNamesRule.js.flow +0 -1
  312. package/validation/rules/UniqueTypeNamesRule.mjs +1 -1
  313. package/validation/rules/UniqueVariableNamesRule.js +1 -1
  314. package/validation/rules/UniqueVariableNamesRule.js.flow +0 -1
  315. package/validation/rules/ValuesOfCorrectTypeRule.js +8 -8
  316. package/validation/rules/ValuesOfCorrectTypeRule.js.flow +0 -1
  317. package/validation/rules/VariablesAreInputTypesRule.js +4 -4
  318. package/validation/rules/VariablesAreInputTypesRule.js.flow +0 -1
  319. package/validation/rules/VariablesInAllowedPositionRule.js +6 -6
  320. package/validation/rules/VariablesInAllowedPositionRule.js.flow +0 -1
  321. package/validation/rules/custom/NoDeprecatedCustomRule.js +47 -9
  322. package/validation/rules/custom/NoDeprecatedCustomRule.js.flow +56 -13
  323. package/validation/rules/custom/NoDeprecatedCustomRule.mjs +43 -8
  324. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +3 -3
  325. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js.flow +0 -1
  326. package/validation/specifiedRules.js +33 -33
  327. package/validation/specifiedRules.js.flow +0 -1
  328. package/validation/validate.js +7 -7
  329. package/validation/validate.js.flow +4 -5
  330. package/version.js +2 -2
  331. package/version.js.flow +2 -3
  332. package/version.mjs +2 -2
  333. package/jsutils/isCollection.js +0 -47
  334. package/jsutils/isCollection.js.flow +0 -39
  335. package/jsutils/isCollection.mjs +0 -40
  336. package/polyfills/flatMap.js +0 -30
  337. package/polyfills/flatMap.js.flow +0 -28
  338. package/polyfills/flatMap.mjs +0 -23
@@ -6,25 +6,25 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.subscribe = subscribe;
7
7
  exports.createSourceEventStream = createSourceEventStream;
8
8
 
9
- var _symbols = require("../polyfills/symbols");
9
+ var _inspect = _interopRequireDefault(require("../jsutils/inspect.js"));
10
10
 
11
- var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
11
+ var _isAsyncIterable = _interopRequireDefault(require("../jsutils/isAsyncIterable.js"));
12
12
 
13
- var _Path = require("../jsutils/Path");
13
+ var _Path = require("../jsutils/Path.js");
14
14
 
15
- var _GraphQLError = require("../error/GraphQLError");
15
+ var _GraphQLError = require("../error/GraphQLError.js");
16
16
 
17
- var _locatedError = require("../error/locatedError");
17
+ var _locatedError = require("../error/locatedError.js");
18
18
 
19
- var _execute = require("../execution/execute");
19
+ var _values = require("../execution/values.js");
20
20
 
21
- var _getOperationRootType = require("../utilities/getOperationRootType");
21
+ var _execute = require("../execution/execute.js");
22
22
 
23
- var _mapAsyncIterator = _interopRequireDefault(require("./mapAsyncIterator"));
23
+ var _getOperationRootType = require("../utilities/getOperationRootType.js");
24
24
 
25
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
+ var _mapAsyncIterator = _interopRequireDefault(require("./mapAsyncIterator.js"));
26
26
 
27
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
27
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
28
28
 
29
29
  function subscribe(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, subscribeFieldResolver) {
30
30
  /* eslint-enable no-redeclare */
@@ -89,7 +89,7 @@ function subscribeImpl(args) {
89
89
 
90
90
  return sourcePromise.then(function (resultOrStream) {
91
91
  return (// Note: Flow can't refine isAsyncIterable, so explicit casts are used.
92
- isAsyncIterable(resultOrStream) ? (0, _mapAsyncIterator.default)(resultOrStream, mapSourceToResponse, reportGraphQLError) : resultOrStream
92
+ (0, _isAsyncIterable.default)(resultOrStream) ? (0, _mapAsyncIterator.default)(resultOrStream, mapSourceToResponse, reportGraphQLError) : resultOrStream
93
93
  );
94
94
  });
95
95
  }
@@ -127,78 +127,66 @@ function createSourceEventStream(schema, document, rootValue, contextValue, vari
127
127
  // If arguments are missing or incorrectly typed, this is an internal
128
128
  // developer mistake which should throw an early error.
129
129
  (0, _execute.assertValidExecutionArguments)(schema, document, variableValues);
130
-
131
- try {
132
- var _fieldDef$subscribe;
133
-
130
+ return new Promise(function (resolve) {
134
131
  // If a valid context cannot be created due to incorrect arguments,
135
132
  // this will throw an error.
136
- var exeContext = (0, _execute.buildExecutionContext)(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver); // Return early errors if execution context failed.
137
-
138
- if (Array.isArray(exeContext)) {
139
- return Promise.resolve({
140
- errors: exeContext
141
- });
142
- }
133
+ var exeContext = (0, _execute.buildExecutionContext)(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver);
134
+ resolve( // Return early errors if execution context failed.
135
+ Array.isArray(exeContext) ? {
136
+ errors: exeContext
137
+ } : executeSubscription(exeContext));
138
+ }).catch(reportGraphQLError);
139
+ }
143
140
 
144
- var type = (0, _getOperationRootType.getOperationRootType)(schema, exeContext.operation);
145
- var fields = (0, _execute.collectFields)(exeContext, type, exeContext.operation.selectionSet, Object.create(null), Object.create(null));
146
- var responseNames = Object.keys(fields);
147
- var responseName = responseNames[0];
148
- var fieldNodes = fields[responseName];
149
- var fieldNode = fieldNodes[0];
150
- var fieldName = fieldNode.name.value;
151
- var fieldDef = (0, _execute.getFieldDef)(schema, type, fieldName);
152
-
153
- if (!fieldDef) {
154
- throw new _GraphQLError.GraphQLError("The subscription field \"".concat(fieldName, "\" is not defined."), fieldNodes);
155
- } // Call the `subscribe()` resolver or the default resolver to produce an
156
- // AsyncIterable yielding raw payloads.
141
+ function executeSubscription(exeContext) {
142
+ var schema = exeContext.schema,
143
+ operation = exeContext.operation,
144
+ variableValues = exeContext.variableValues,
145
+ rootValue = exeContext.rootValue;
146
+ var type = (0, _getOperationRootType.getOperationRootType)(schema, operation);
147
+ var fields = (0, _execute.collectFields)(exeContext, type, operation.selectionSet, Object.create(null), Object.create(null));
148
+ var responseNames = Object.keys(fields);
149
+ var responseName = responseNames[0];
150
+ var fieldNodes = fields[responseName];
151
+ var fieldNode = fieldNodes[0];
152
+ var fieldName = fieldNode.name.value;
153
+ var fieldDef = (0, _execute.getFieldDef)(schema, type, fieldName);
154
+
155
+ if (!fieldDef) {
156
+ throw new _GraphQLError.GraphQLError("The subscription field \"".concat(fieldName, "\" is not defined."), fieldNodes);
157
+ }
157
158
 
159
+ var path = (0, _Path.addPath)(undefined, responseName, type.name);
160
+ var info = (0, _execute.buildResolveInfo)(exeContext, fieldDef, fieldNodes, type, path); // Coerce to Promise for easier error handling and consistent return type.
158
161
 
159
- var resolveFn = (_fieldDef$subscribe = fieldDef.subscribe) !== null && _fieldDef$subscribe !== void 0 ? _fieldDef$subscribe : exeContext.fieldResolver;
160
- var path = (0, _Path.addPath)(undefined, responseName, type.name);
161
- var info = (0, _execute.buildResolveInfo)(exeContext, fieldDef, fieldNodes, type, path); // resolveFieldValueOrError implements the "ResolveFieldEventStream"
162
- // algorithm from GraphQL specification. It differs from
163
- // "ResolveFieldValue" due to providing a different `resolveFn`.
162
+ return new Promise(function (resolveResult) {
163
+ var _fieldDef$subscribe;
164
164
 
165
- var result = (0, _execute.resolveFieldValueOrError)(exeContext, fieldDef, fieldNodes, resolveFn, rootValue, info); // Coerce to Promise for easier error handling and consistent return type.
165
+ // Implements the "ResolveFieldEventStream" algorithm from GraphQL specification.
166
+ // It differs from "ResolveFieldValue" due to providing a different `resolveFn`.
167
+ // Build a JS object of arguments from the field.arguments AST, using the
168
+ // variables scope to fulfill any variable references.
169
+ var args = (0, _values.getArgumentValues)(fieldDef, fieldNodes[0], variableValues); // The resolve function's optional third argument is a context value that
170
+ // is provided to every resolve function within an execution. It is commonly
171
+ // used to represent an authenticated user, or request-specific caches.
166
172
 
167
- return Promise.resolve(result).then(function (eventStream) {
168
- // If eventStream is an Error, rethrow a located error.
169
- if (eventStream instanceof Error) {
170
- return {
171
- errors: [(0, _locatedError.locatedError)(eventStream, fieldNodes, (0, _Path.pathToArray)(path))]
172
- };
173
- } // Assert field returned an event stream, otherwise yield an error.
173
+ var contextValue = exeContext.contextValue; // Call the `subscribe()` resolver or the default resolver to produce an
174
+ // AsyncIterable yielding raw payloads.
174
175
 
176
+ var resolveFn = (_fieldDef$subscribe = fieldDef.subscribe) !== null && _fieldDef$subscribe !== void 0 ? _fieldDef$subscribe : exeContext.fieldResolver;
177
+ resolveResult(resolveFn(rootValue, args, contextValue, info));
178
+ }).then(function (eventStream) {
179
+ if (eventStream instanceof Error) {
180
+ throw (0, _locatedError.locatedError)(eventStream, fieldNodes, (0, _Path.pathToArray)(path));
181
+ } // Assert field returned an event stream, otherwise yield an error.
175
182
 
176
- if (isAsyncIterable(eventStream)) {
177
- // Note: isAsyncIterable above ensures this will be correct.
178
- return eventStream;
179
- }
180
183
 
184
+ if (!(0, _isAsyncIterable.default)(eventStream)) {
181
185
  throw new Error('Subscription field must return Async Iterable. ' + "Received: ".concat((0, _inspect.default)(eventStream), "."));
182
- });
183
- } catch (error) {
184
- // As with reportGraphQLError above, if the error is a GraphQLError, report
185
- // it as an ExecutionResult; otherwise treat it as a system-class error and
186
- // re-throw it.
187
- return error instanceof _GraphQLError.GraphQLError ? Promise.resolve({
188
- errors: [error]
189
- }) : Promise.reject(error);
190
- }
191
- }
192
- /**
193
- * Returns true if the provided object implements the AsyncIterator protocol via
194
- * either implementing a `Symbol.asyncIterator` or `"@@asyncIterator"` method.
195
- */
196
-
197
-
198
- function isAsyncIterable(maybeAsyncIterable) {
199
- if (maybeAsyncIterable == null || _typeof(maybeAsyncIterable) !== 'object') {
200
- return false;
201
- }
186
+ }
202
187
 
203
- return typeof maybeAsyncIterable[_symbols.SYMBOL_ASYNC_ITERATOR] === 'function';
188
+ return eventStream;
189
+ }, function (error) {
190
+ throw (0, _locatedError.locatedError)(error, fieldNodes, (0, _Path.pathToArray)(path));
191
+ });
204
192
  }
@@ -1,8 +1,6 @@
1
1
  // @flow strict
2
-
3
- import { SYMBOL_ASYNC_ITERATOR } from '../polyfills/symbols';
4
-
5
2
  import inspect from '../jsutils/inspect';
3
+ import isAsyncIterable from '../jsutils/isAsyncIterable';
6
4
  import { addPath, pathToArray } from '../jsutils/Path';
7
5
 
8
6
  import { GraphQLError } from '../error/GraphQLError';
@@ -10,7 +8,8 @@ import { locatedError } from '../error/locatedError';
10
8
 
11
9
  import type { DocumentNode } from '../language/ast';
12
10
 
13
- import type { ExecutionResult } from '../execution/execute';
11
+ import type { ExecutionResult, ExecutionContext } from '../execution/execute';
12
+ import { getArgumentValues } from '../execution/values';
14
13
  import {
15
14
  assertValidExecutionArguments,
16
15
  buildExecutionContext,
@@ -18,7 +17,6 @@ import {
18
17
  collectFields,
19
18
  execute,
20
19
  getFieldDef,
21
- resolveFieldValueOrError,
22
20
  } from '../execution/execute';
23
21
 
24
22
  import type { GraphQLSchema } from '../type/schema';
@@ -63,7 +61,7 @@ export type SubscriptionArgs = {|
63
61
  declare function subscribe(
64
62
  SubscriptionArgs,
65
63
  ..._: []
66
- ): Promise<AsyncIterator<ExecutionResult> | ExecutionResult>;
64
+ ): Promise<AsyncGenerator<ExecutionResult, void, void> | ExecutionResult>;
67
65
  /* eslint-disable no-redeclare */
68
66
  declare function subscribe(
69
67
  schema: GraphQLSchema,
@@ -106,7 +104,7 @@ export function subscribe(
106
104
  * an ExecutionResult, containing only errors and no data. Otherwise treat the
107
105
  * error as a system-class error and re-throw it.
108
106
  */
109
- function reportGraphQLError(error) {
107
+ function reportGraphQLError(error: mixed): ExecutionResult {
110
108
  if (error instanceof GraphQLError) {
111
109
  return { errors: [error] };
112
110
  }
@@ -115,7 +113,7 @@ function reportGraphQLError(error) {
115
113
 
116
114
  function subscribeImpl(
117
115
  args: SubscriptionArgs,
118
- ): Promise<AsyncIterator<ExecutionResult> | ExecutionResult> {
116
+ ): Promise<AsyncGenerator<ExecutionResult, void, void> | ExecutionResult> {
119
117
  const {
120
118
  schema,
121
119
  document,
@@ -160,7 +158,7 @@ function subscribeImpl(
160
158
  // Note: Flow can't refine isAsyncIterable, so explicit casts are used.
161
159
  isAsyncIterable(resultOrStream)
162
160
  ? mapAsyncIterator(
163
- ((resultOrStream: any): AsyncIterable<mixed>),
161
+ resultOrStream,
164
162
  mapSourceToResponse,
165
163
  reportGraphQLError,
166
164
  )
@@ -209,7 +207,7 @@ export function createSourceEventStream(
209
207
  // developer mistake which should throw an early error.
210
208
  assertValidExecutionArguments(schema, document, variableValues);
211
209
 
212
- try {
210
+ return new Promise((resolve) => {
213
211
  // If a valid context cannot be created due to incorrect arguments,
214
212
  // this will throw an error.
215
213
  const exeContext = buildExecutionContext(
@@ -222,91 +220,79 @@ export function createSourceEventStream(
222
220
  fieldResolver,
223
221
  );
224
222
 
225
- // Return early errors if execution context failed.
226
- if (Array.isArray(exeContext)) {
227
- return Promise.resolve({ errors: exeContext });
228
- }
229
-
230
- const type = getOperationRootType(schema, exeContext.operation);
231
- const fields = collectFields(
232
- exeContext,
233
- type,
234
- exeContext.operation.selectionSet,
235
- Object.create(null),
236
- Object.create(null),
223
+ resolve(
224
+ // Return early errors if execution context failed.
225
+ Array.isArray(exeContext)
226
+ ? { errors: exeContext }
227
+ : executeSubscription(exeContext),
237
228
  );
238
- const responseNames = Object.keys(fields);
239
- const responseName = responseNames[0];
240
- const fieldNodes = fields[responseName];
241
- const fieldNode = fieldNodes[0];
242
- const fieldName = fieldNode.name.value;
243
- const fieldDef = getFieldDef(schema, type, fieldName);
229
+ }).catch(reportGraphQLError);
230
+ }
244
231
 
245
- if (!fieldDef) {
246
- throw new GraphQLError(
247
- `The subscription field "${fieldName}" is not defined.`,
248
- fieldNodes,
249
- );
250
- }
232
+ function executeSubscription(
233
+ exeContext: ExecutionContext,
234
+ ): Promise<AsyncIterable<mixed>> {
235
+ const { schema, operation, variableValues, rootValue } = exeContext;
236
+ const type = getOperationRootType(schema, operation);
237
+ const fields = collectFields(
238
+ exeContext,
239
+ type,
240
+ operation.selectionSet,
241
+ Object.create(null),
242
+ Object.create(null),
243
+ );
244
+ const responseNames = Object.keys(fields);
245
+ const responseName = responseNames[0];
246
+ const fieldNodes = fields[responseName];
247
+ const fieldNode = fieldNodes[0];
248
+ const fieldName = fieldNode.name.value;
249
+ const fieldDef = getFieldDef(schema, type, fieldName);
251
250
 
252
- // Call the `subscribe()` resolver or the default resolver to produce an
253
- // AsyncIterable yielding raw payloads.
254
- const resolveFn = fieldDef.subscribe ?? exeContext.fieldResolver;
251
+ if (!fieldDef) {
252
+ throw new GraphQLError(
253
+ `The subscription field "${fieldName}" is not defined.`,
254
+ fieldNodes,
255
+ );
256
+ }
255
257
 
256
- const path = addPath(undefined, responseName, type.name);
258
+ const path = addPath(undefined, responseName, type.name);
259
+ const info = buildResolveInfo(exeContext, fieldDef, fieldNodes, type, path);
257
260
 
258
- const info = buildResolveInfo(exeContext, fieldDef, fieldNodes, type, path);
261
+ // Coerce to Promise for easier error handling and consistent return type.
262
+ return new Promise((resolveResult) => {
263
+ // Implements the "ResolveFieldEventStream" algorithm from GraphQL specification.
264
+ // It differs from "ResolveFieldValue" due to providing a different `resolveFn`.
259
265
 
260
- // resolveFieldValueOrError implements the "ResolveFieldEventStream"
261
- // algorithm from GraphQL specification. It differs from
262
- // "ResolveFieldValue" due to providing a different `resolveFn`.
263
- const result = resolveFieldValueOrError(
264
- exeContext,
265
- fieldDef,
266
- fieldNodes,
267
- resolveFn,
268
- rootValue,
269
- info,
270
- );
266
+ // Build a JS object of arguments from the field.arguments AST, using the
267
+ // variables scope to fulfill any variable references.
268
+ const args = getArgumentValues(fieldDef, fieldNodes[0], variableValues);
271
269
 
272
- // Coerce to Promise for easier error handling and consistent return type.
273
- return Promise.resolve(result).then((eventStream) => {
274
- // If eventStream is an Error, rethrow a located error.
270
+ // The resolve function's optional third argument is a context value that
271
+ // is provided to every resolve function within an execution. It is commonly
272
+ // used to represent an authenticated user, or request-specific caches.
273
+ const contextValue = exeContext.contextValue;
274
+
275
+ // Call the `subscribe()` resolver or the default resolver to produce an
276
+ // AsyncIterable yielding raw payloads.
277
+ const resolveFn = fieldDef.subscribe ?? exeContext.fieldResolver;
278
+ resolveResult(resolveFn(rootValue, args, contextValue, info));
279
+ }).then(
280
+ (eventStream) => {
275
281
  if (eventStream instanceof Error) {
276
- return {
277
- errors: [locatedError(eventStream, fieldNodes, pathToArray(path))],
278
- };
282
+ throw locatedError(eventStream, fieldNodes, pathToArray(path));
279
283
  }
280
284
 
281
285
  // Assert field returned an event stream, otherwise yield an error.
282
- if (isAsyncIterable(eventStream)) {
283
- // Note: isAsyncIterable above ensures this will be correct.
284
- return ((eventStream: any): AsyncIterable<mixed>);
286
+ if (!isAsyncIterable(eventStream)) {
287
+ throw new Error(
288
+ 'Subscription field must return Async Iterable. ' +
289
+ `Received: ${inspect(eventStream)}.`,
290
+ );
285
291
  }
286
-
287
- throw new Error(
288
- 'Subscription field must return Async Iterable. ' +
289
- `Received: ${inspect(eventStream)}.`,
290
- );
291
- });
292
- } catch (error) {
293
- // As with reportGraphQLError above, if the error is a GraphQLError, report
294
- // it as an ExecutionResult; otherwise treat it as a system-class error and
295
- // re-throw it.
296
- return error instanceof GraphQLError
297
- ? Promise.resolve({ errors: [error] })
298
- : Promise.reject(error);
299
- }
300
- }
301
-
302
- /**
303
- * Returns true if the provided object implements the AsyncIterator protocol via
304
- * either implementing a `Symbol.asyncIterator` or `"@@asyncIterator"` method.
305
- */
306
- function isAsyncIterable(maybeAsyncIterable: mixed): boolean {
307
- if (maybeAsyncIterable == null || typeof maybeAsyncIterable !== 'object') {
308
- return false;
309
- }
310
-
311
- return typeof maybeAsyncIterable[SYMBOL_ASYNC_ITERATOR] === 'function';
292
+ return eventStream;
293
+ },
294
+ (error) => {
295
+ throw locatedError(error, fieldNodes, pathToArray(path));
296
+ },
297
+ );
312
298
  }
@@ -1,11 +1,10 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
2
-
3
- import { SYMBOL_ASYNC_ITERATOR } from "../polyfills/symbols.mjs";
4
1
  import inspect from "../jsutils/inspect.mjs";
2
+ import isAsyncIterable from "../jsutils/isAsyncIterable.mjs";
5
3
  import { addPath, pathToArray } from "../jsutils/Path.mjs";
6
4
  import { GraphQLError } from "../error/GraphQLError.mjs";
7
5
  import { locatedError } from "../error/locatedError.mjs";
8
- import { assertValidExecutionArguments, buildExecutionContext, buildResolveInfo, collectFields, execute, getFieldDef, resolveFieldValueOrError } from "../execution/execute.mjs";
6
+ import { getArgumentValues } from "../execution/values.mjs";
7
+ import { assertValidExecutionArguments, buildExecutionContext, buildResolveInfo, collectFields, execute, getFieldDef } from "../execution/execute.mjs";
9
8
  import { getOperationRootType } from "../utilities/getOperationRootType.mjs";
10
9
  import mapAsyncIterator from "./mapAsyncIterator.mjs";
11
10
  export function subscribe(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, subscribeFieldResolver) {
@@ -108,77 +107,66 @@ export function createSourceEventStream(schema, document, rootValue, contextValu
108
107
  // If arguments are missing or incorrectly typed, this is an internal
109
108
  // developer mistake which should throw an early error.
110
109
  assertValidExecutionArguments(schema, document, variableValues);
111
-
112
- try {
113
- var _fieldDef$subscribe;
114
-
110
+ return new Promise(function (resolve) {
115
111
  // If a valid context cannot be created due to incorrect arguments,
116
112
  // this will throw an error.
117
- var exeContext = buildExecutionContext(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver); // Return early errors if execution context failed.
118
-
119
- if (Array.isArray(exeContext)) {
120
- return Promise.resolve({
121
- errors: exeContext
122
- });
123
- }
113
+ var exeContext = buildExecutionContext(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver);
114
+ resolve( // Return early errors if execution context failed.
115
+ Array.isArray(exeContext) ? {
116
+ errors: exeContext
117
+ } : executeSubscription(exeContext));
118
+ }).catch(reportGraphQLError);
119
+ }
124
120
 
125
- var type = getOperationRootType(schema, exeContext.operation);
126
- var fields = collectFields(exeContext, type, exeContext.operation.selectionSet, Object.create(null), Object.create(null));
127
- var responseNames = Object.keys(fields);
128
- var responseName = responseNames[0];
129
- var fieldNodes = fields[responseName];
130
- var fieldNode = fieldNodes[0];
131
- var fieldName = fieldNode.name.value;
132
- var fieldDef = getFieldDef(schema, type, fieldName);
133
-
134
- if (!fieldDef) {
135
- throw new GraphQLError("The subscription field \"".concat(fieldName, "\" is not defined."), fieldNodes);
136
- } // Call the `subscribe()` resolver or the default resolver to produce an
137
- // AsyncIterable yielding raw payloads.
121
+ function executeSubscription(exeContext) {
122
+ var schema = exeContext.schema,
123
+ operation = exeContext.operation,
124
+ variableValues = exeContext.variableValues,
125
+ rootValue = exeContext.rootValue;
126
+ var type = getOperationRootType(schema, operation);
127
+ var fields = collectFields(exeContext, type, operation.selectionSet, Object.create(null), Object.create(null));
128
+ var responseNames = Object.keys(fields);
129
+ var responseName = responseNames[0];
130
+ var fieldNodes = fields[responseName];
131
+ var fieldNode = fieldNodes[0];
132
+ var fieldName = fieldNode.name.value;
133
+ var fieldDef = getFieldDef(schema, type, fieldName);
134
+
135
+ if (!fieldDef) {
136
+ throw new GraphQLError("The subscription field \"".concat(fieldName, "\" is not defined."), fieldNodes);
137
+ }
138
138
 
139
+ var path = addPath(undefined, responseName, type.name);
140
+ var info = buildResolveInfo(exeContext, fieldDef, fieldNodes, type, path); // Coerce to Promise for easier error handling and consistent return type.
139
141
 
140
- var resolveFn = (_fieldDef$subscribe = fieldDef.subscribe) !== null && _fieldDef$subscribe !== void 0 ? _fieldDef$subscribe : exeContext.fieldResolver;
141
- var path = addPath(undefined, responseName, type.name);
142
- var info = buildResolveInfo(exeContext, fieldDef, fieldNodes, type, path); // resolveFieldValueOrError implements the "ResolveFieldEventStream"
143
- // algorithm from GraphQL specification. It differs from
144
- // "ResolveFieldValue" due to providing a different `resolveFn`.
142
+ return new Promise(function (resolveResult) {
143
+ var _fieldDef$subscribe;
145
144
 
146
- var result = resolveFieldValueOrError(exeContext, fieldDef, fieldNodes, resolveFn, rootValue, info); // Coerce to Promise for easier error handling and consistent return type.
145
+ // Implements the "ResolveFieldEventStream" algorithm from GraphQL specification.
146
+ // It differs from "ResolveFieldValue" due to providing a different `resolveFn`.
147
+ // Build a JS object of arguments from the field.arguments AST, using the
148
+ // variables scope to fulfill any variable references.
149
+ var args = getArgumentValues(fieldDef, fieldNodes[0], variableValues); // The resolve function's optional third argument is a context value that
150
+ // is provided to every resolve function within an execution. It is commonly
151
+ // used to represent an authenticated user, or request-specific caches.
147
152
 
148
- return Promise.resolve(result).then(function (eventStream) {
149
- // If eventStream is an Error, rethrow a located error.
150
- if (eventStream instanceof Error) {
151
- return {
152
- errors: [locatedError(eventStream, fieldNodes, pathToArray(path))]
153
- };
154
- } // Assert field returned an event stream, otherwise yield an error.
153
+ var contextValue = exeContext.contextValue; // Call the `subscribe()` resolver or the default resolver to produce an
154
+ // AsyncIterable yielding raw payloads.
155
155
 
156
+ var resolveFn = (_fieldDef$subscribe = fieldDef.subscribe) !== null && _fieldDef$subscribe !== void 0 ? _fieldDef$subscribe : exeContext.fieldResolver;
157
+ resolveResult(resolveFn(rootValue, args, contextValue, info));
158
+ }).then(function (eventStream) {
159
+ if (eventStream instanceof Error) {
160
+ throw locatedError(eventStream, fieldNodes, pathToArray(path));
161
+ } // Assert field returned an event stream, otherwise yield an error.
156
162
 
157
- if (isAsyncIterable(eventStream)) {
158
- // Note: isAsyncIterable above ensures this will be correct.
159
- return eventStream;
160
- }
161
163
 
164
+ if (!isAsyncIterable(eventStream)) {
162
165
  throw new Error('Subscription field must return Async Iterable. ' + "Received: ".concat(inspect(eventStream), "."));
163
- });
164
- } catch (error) {
165
- // As with reportGraphQLError above, if the error is a GraphQLError, report
166
- // it as an ExecutionResult; otherwise treat it as a system-class error and
167
- // re-throw it.
168
- return error instanceof GraphQLError ? Promise.resolve({
169
- errors: [error]
170
- }) : Promise.reject(error);
171
- }
172
- }
173
- /**
174
- * Returns true if the provided object implements the AsyncIterator protocol via
175
- * either implementing a `Symbol.asyncIterator` or `"@@asyncIterator"` method.
176
- */
177
-
178
- function isAsyncIterable(maybeAsyncIterable) {
179
- if (maybeAsyncIterable == null || _typeof(maybeAsyncIterable) !== 'object') {
180
- return false;
181
- }
166
+ }
182
167
 
183
- return typeof maybeAsyncIterable[SYMBOL_ASYNC_ITERATOR] === 'function';
168
+ return eventStream;
169
+ }, function (error) {
170
+ throw locatedError(error, fieldNodes, pathToArray(path));
171
+ });
184
172
  }
@@ -183,6 +183,7 @@ interface _GraphQLList<T extends GraphQLType> {
183
183
  new (type: T): GraphQLList<T>;
184
184
  }
185
185
 
186
+ // eslint-disable-next-line @typescript-eslint/no-redeclare
186
187
  export const GraphQLList: _GraphQLList<GraphQLType>;
187
188
 
188
189
  /**
@@ -217,6 +218,7 @@ interface _GraphQLNonNull<T extends GraphQLNullableType> {
217
218
  new (type: T): GraphQLNonNull<T>;
218
219
  }
219
220
 
221
+ // eslint-disable-next-line @typescript-eslint/no-redeclare
220
222
  export const GraphQLNonNull: _GraphQLNonNull<GraphQLNullableType>;
221
223
 
222
224
  export type GraphQLWrappingType = GraphQLList<any> | GraphQLNonNull<any>;
@@ -241,15 +243,13 @@ export function isNullableType(type: any): type is GraphQLNullableType;
241
243
 
242
244
  export function assertNullableType(type: any): GraphQLNullableType;
243
245
 
244
- // FIXME Disabled because of https://github.com/yaacovCR/graphql-tools-fork/issues/40#issuecomment-586671219
245
- // tslint:disable:unified-signatures
246
246
  export function getNullableType(type: undefined): undefined;
247
247
  export function getNullableType<T extends GraphQLNullableType>(type: T): T;
248
248
  export function getNullableType<T extends GraphQLNullableType>(
249
+ // FIXME Disabled because of https://github.com/yaacovCR/graphql-tools-fork/issues/40#issuecomment-586671219
249
250
  // eslint-disable-next-line @typescript-eslint/unified-signatures
250
251
  type: GraphQLNonNull<T>,
251
252
  ): T;
252
- // tslint:enable:unified-signatures
253
253
 
254
254
  /**
255
255
  * These named types do not include modifiers like List or NonNull.
@@ -370,7 +370,7 @@ export interface GraphQLScalarTypeConfig<TInternal, TExternal> {
370
370
  * We've provided these template arguments because this is an open type and
371
371
  * you may find them useful.
372
372
  */
373
- export interface GraphQLObjectTypeExtensions<TSource = any, TContext = any> {
373
+ export interface GraphQLObjectTypeExtensions<_TSource = any, _TContext = any> {
374
374
  [attributeName: string]: any;
375
375
  }
376
376
 
@@ -501,9 +501,9 @@ export interface GraphQLResolveInfo {
501
501
  * you may find them useful.
502
502
  */
503
503
  export interface GraphQLFieldExtensions<
504
- TSource,
505
- TContext,
506
- TArgs = { [argName: string]: any }
504
+ _TSource,
505
+ _TContext,
506
+ _TArgs = { [argName: string]: any }
507
507
  > {
508
508
  [attributeName: string]: any;
509
509
  }
@@ -546,6 +546,7 @@ export interface GraphQLArgumentConfig {
546
546
  description?: Maybe<string>;
547
547
  type: GraphQLInputType;
548
548
  defaultValue?: any;
549
+ deprecationReason?: Maybe<string>;
549
550
  extensions?: Maybe<Readonly<GraphQLArgumentExtensions>>;
550
551
  astNode?: Maybe<InputValueDefinitionNode>;
551
552
  }
@@ -565,10 +566,12 @@ export interface GraphQLField<
565
566
  args: Array<GraphQLArgument>;
566
567
  resolve?: GraphQLFieldResolver<TSource, TContext, TArgs>;
567
568
  subscribe?: GraphQLFieldResolver<TSource, TContext, TArgs>;
568
- isDeprecated: boolean;
569
569
  deprecationReason: Maybe<string>;
570
570
  extensions: Maybe<Readonly<GraphQLFieldExtensions<TSource, TContext, TArgs>>>;
571
571
  astNode?: Maybe<FieldDefinitionNode>;
572
+
573
+ // @deprecated and will be removed in v16
574
+ isDeprecated: boolean;
572
575
  }
573
576
 
574
577
  export interface GraphQLArgument {
@@ -576,6 +579,7 @@ export interface GraphQLArgument {
576
579
  description: Maybe<string>;
577
580
  type: GraphQLInputType;
578
581
  defaultValue: any;
582
+ deprecationReason: Maybe<string>;
579
583
  extensions: Maybe<Readonly<GraphQLArgumentExtensions>>;
580
584
  astNode: Maybe<InputValueDefinitionNode>;
581
585
  }
@@ -829,10 +833,12 @@ export interface GraphQLEnumValue {
829
833
  name: string;
830
834
  description: Maybe<string>;
831
835
  value: any;
832
- isDeprecated: boolean;
833
836
  deprecationReason: Maybe<string>;
834
837
  extensions: Maybe<Readonly<GraphQLEnumValueExtensions>>;
835
838
  astNode?: Maybe<EnumValueDefinitionNode>;
839
+
840
+ // @deprecated and will be removed in v16
841
+ isDeprecated: boolean;
836
842
  }
837
843
 
838
844
  /**
@@ -915,6 +921,7 @@ export interface GraphQLInputFieldConfig {
915
921
  description?: Maybe<string>;
916
922
  type: GraphQLInputType;
917
923
  defaultValue?: any;
924
+ deprecationReason?: Maybe<string>;
918
925
  extensions?: Maybe<Readonly<GraphQLInputFieldExtensions>>;
919
926
  astNode?: Maybe<InputValueDefinitionNode>;
920
927
  }
@@ -928,6 +935,7 @@ export interface GraphQLInputField {
928
935
  description?: Maybe<string>;
929
936
  type: GraphQLInputType;
930
937
  defaultValue?: any;
938
+ deprecationReason: Maybe<string>;
931
939
  extensions: Maybe<Readonly<GraphQLInputFieldExtensions>>;
932
940
  astNode?: Maybe<InputValueDefinitionNode>;
933
941
  }