graphql 14.1.1 → 14.3.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 (377) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/error/GraphQLError.js +12 -10
  4. package/error/GraphQLError.js.flow +11 -6
  5. package/error/GraphQLError.mjs +20 -3
  6. package/error/formatError.js +2 -2
  7. package/error/formatError.js.flow +3 -3
  8. package/error/formatError.mjs +2 -2
  9. package/error/index.js +1 -1
  10. package/error/index.js.flow +5 -2
  11. package/error/index.mjs +2 -2
  12. package/error/locatedError.js +2 -2
  13. package/error/locatedError.js.flow +2 -2
  14. package/error/locatedError.mjs +2 -2
  15. package/error/printError.js +2 -2
  16. package/error/printError.js.flow +4 -5
  17. package/error/printError.mjs +2 -2
  18. package/error/syntaxError.js +2 -2
  19. package/error/syntaxError.js.flow +2 -2
  20. package/error/syntaxError.mjs +2 -2
  21. package/execution/execute.js +52 -37
  22. package/execution/execute.js.flow +66 -51
  23. package/execution/execute.mjs +50 -38
  24. package/execution/index.js +7 -1
  25. package/execution/index.js.flow +9 -4
  26. package/execution/index.mjs +3 -3
  27. package/execution/values.js +11 -11
  28. package/execution/values.js.flow +23 -19
  29. package/execution/values.mjs +11 -11
  30. package/graphql.js +13 -9
  31. package/graphql.js.flow +28 -10
  32. package/graphql.mjs +10 -9
  33. package/index.js +83 -53
  34. package/index.js.flow +60 -47
  35. package/index.mjs +26 -23
  36. package/jsutils/ObjMap.js +1 -1
  37. package/jsutils/ObjMap.js.flow +1 -1
  38. package/jsutils/ObjMap.mjs +1 -0
  39. package/jsutils/PromiseOrValue.js +1 -0
  40. package/jsutils/{MaybePromise.js.flow → PromiseOrValue.js.flow} +2 -2
  41. package/jsutils/PromiseOrValue.mjs +1 -0
  42. package/jsutils/dedent.js +2 -2
  43. package/jsutils/dedent.js.flow +1 -1
  44. package/jsutils/dedent.mjs +2 -2
  45. package/jsutils/defineToJSON.js +2 -2
  46. package/jsutils/defineToJSON.js.flow +1 -1
  47. package/jsutils/defineToJSON.mjs +2 -2
  48. package/jsutils/defineToStringTag.js +2 -2
  49. package/jsutils/defineToStringTag.js.flow +1 -1
  50. package/jsutils/defineToStringTag.mjs +2 -2
  51. package/jsutils/inspect.js +94 -19
  52. package/jsutils/inspect.js.flow +98 -20
  53. package/jsutils/inspect.mjs +94 -20
  54. package/jsutils/instanceOf.js +2 -2
  55. package/jsutils/instanceOf.js.flow +1 -1
  56. package/jsutils/instanceOf.mjs +2 -2
  57. package/jsutils/invariant.js +5 -3
  58. package/jsutils/invariant.js.flow +3 -2
  59. package/jsutils/invariant.mjs +5 -3
  60. package/jsutils/isInvalid.js +2 -2
  61. package/jsutils/isInvalid.js.flow +1 -1
  62. package/jsutils/isInvalid.mjs +2 -2
  63. package/jsutils/isNullish.js +2 -2
  64. package/jsutils/isNullish.js.flow +1 -1
  65. package/jsutils/isNullish.mjs +2 -2
  66. package/jsutils/isPromise.js +2 -2
  67. package/jsutils/isPromise.js.flow +1 -1
  68. package/jsutils/isPromise.mjs +2 -2
  69. package/jsutils/keyMap.js +4 -3
  70. package/jsutils/keyMap.js.flow +6 -6
  71. package/jsutils/keyMap.mjs +4 -3
  72. package/jsutils/keyValMap.js +4 -3
  73. package/jsutils/keyValMap.js.flow +6 -6
  74. package/jsutils/keyValMap.mjs +4 -3
  75. package/jsutils/mapValue.js +2 -2
  76. package/jsutils/mapValue.js.flow +2 -2
  77. package/jsutils/mapValue.mjs +2 -2
  78. package/jsutils/memoize3.js +3 -3
  79. package/jsutils/memoize3.js.flow +2 -2
  80. package/jsutils/memoize3.mjs +3 -3
  81. package/jsutils/nodejsCustomInspectSymbol.js +2 -2
  82. package/jsutils/nodejsCustomInspectSymbol.js.flow +1 -1
  83. package/jsutils/nodejsCustomInspectSymbol.mjs +2 -2
  84. package/jsutils/orList.js +2 -2
  85. package/jsutils/orList.js.flow +1 -1
  86. package/jsutils/orList.mjs +2 -2
  87. package/jsutils/promiseForObject.js +2 -2
  88. package/jsutils/promiseForObject.js.flow +2 -2
  89. package/jsutils/promiseForObject.mjs +2 -2
  90. package/jsutils/promiseReduce.js +2 -2
  91. package/jsutils/promiseReduce.js.flow +5 -5
  92. package/jsutils/promiseReduce.mjs +2 -2
  93. package/jsutils/quotedOrList.js +2 -2
  94. package/jsutils/quotedOrList.js.flow +1 -1
  95. package/jsutils/quotedOrList.mjs +2 -2
  96. package/jsutils/suggestionList.js +2 -2
  97. package/jsutils/suggestionList.js.flow +1 -1
  98. package/jsutils/suggestionList.mjs +2 -2
  99. package/language/ast.js +1 -1
  100. package/language/ast.js.flow +3 -3
  101. package/language/ast.mjs +1 -0
  102. package/language/blockString.js +114 -0
  103. package/language/blockString.js.flow +102 -0
  104. package/language/blockString.mjs +104 -0
  105. package/language/directiveLocation.js +2 -2
  106. package/language/directiveLocation.js.flow +1 -1
  107. package/language/directiveLocation.mjs +2 -2
  108. package/language/index.js +9 -9
  109. package/language/index.js.flow +10 -5
  110. package/language/index.mjs +3 -3
  111. package/language/kinds.js +2 -2
  112. package/language/kinds.js.flow +1 -1
  113. package/language/kinds.mjs +2 -2
  114. package/language/lexer.js +52 -44
  115. package/language/lexer.js.flow +65 -54
  116. package/language/lexer.mjs +49 -43
  117. package/language/location.js +2 -2
  118. package/language/location.js.flow +2 -2
  119. package/language/location.mjs +2 -2
  120. package/language/parser.js +75 -67
  121. package/language/parser.js.flow +138 -127
  122. package/language/parser.mjs +76 -68
  123. package/language/predicates.js +2 -2
  124. package/language/predicates.js.flow +2 -2
  125. package/language/predicates.mjs +2 -2
  126. package/language/printer.js +6 -14
  127. package/language/printer.js.flow +8 -17
  128. package/language/printer.mjs +5 -14
  129. package/language/source.js +2 -2
  130. package/language/source.js.flow +1 -1
  131. package/language/source.mjs +2 -2
  132. package/language/visitor.js +4 -6
  133. package/language/visitor.js.flow +3 -3
  134. package/language/visitor.mjs +4 -6
  135. package/package.json +1 -1
  136. package/polyfills/find.js +2 -2
  137. package/polyfills/find.js.flow +1 -1
  138. package/polyfills/find.mjs +2 -2
  139. package/polyfills/flatMap.js +38 -0
  140. package/polyfills/flatMap.js.flow +34 -0
  141. package/polyfills/flatMap.mjs +30 -0
  142. package/polyfills/isFinite.js +2 -2
  143. package/polyfills/isFinite.js.flow +1 -1
  144. package/polyfills/isFinite.mjs +2 -2
  145. package/polyfills/isInteger.js +2 -2
  146. package/polyfills/isInteger.js.flow +1 -1
  147. package/polyfills/isInteger.mjs +2 -2
  148. package/polyfills/objectEntries.js +2 -2
  149. package/polyfills/objectEntries.js.flow +2 -2
  150. package/polyfills/objectEntries.mjs +2 -2
  151. package/polyfills/objectValues.js +2 -2
  152. package/polyfills/objectValues.js.flow +2 -2
  153. package/polyfills/objectValues.mjs +2 -2
  154. package/subscription/asyncIteratorReject.js +1 -1
  155. package/subscription/asyncIteratorReject.js.flow +1 -1
  156. package/subscription/asyncIteratorReject.mjs +2 -2
  157. package/subscription/index.js +1 -1
  158. package/subscription/index.js.flow +1 -1
  159. package/subscription/index.mjs +2 -2
  160. package/subscription/mapAsyncIterator.js +1 -1
  161. package/subscription/mapAsyncIterator.js.flow +5 -5
  162. package/subscription/mapAsyncIterator.mjs +2 -2
  163. package/subscription/subscribe.js +2 -2
  164. package/subscription/subscribe.js.flow +6 -6
  165. package/subscription/subscribe.mjs +2 -2
  166. package/type/definition.js +138 -22
  167. package/type/definition.js.flow +184 -36
  168. package/type/definition.mjs +136 -23
  169. package/type/directives.js +14 -3
  170. package/type/directives.js.flow +24 -11
  171. package/type/directives.mjs +16 -5
  172. package/type/index.js +7 -7
  173. package/type/index.js.flow +8 -4
  174. package/type/index.mjs +10 -6
  175. package/type/introspection.js +14 -9
  176. package/type/introspection.js.flow +12 -18
  177. package/type/introspection.mjs +14 -9
  178. package/type/scalars.js +5 -4
  179. package/type/scalars.js.flow +4 -10
  180. package/type/scalars.mjs +7 -6
  181. package/type/schema.js +55 -3
  182. package/type/schema.js.flow +73 -17
  183. package/type/schema.mjs +56 -4
  184. package/type/validate.js +19 -47
  185. package/type/validate.js.flow +17 -29
  186. package/type/validate.mjs +18 -47
  187. package/utilities/TypeInfo.js +93 -73
  188. package/utilities/TypeInfo.js.flow +30 -23
  189. package/utilities/TypeInfo.mjs +93 -73
  190. package/utilities/assertValidName.js +2 -2
  191. package/utilities/assertValidName.js.flow +2 -2
  192. package/utilities/assertValidName.mjs +2 -2
  193. package/utilities/astFromValue.js +5 -4
  194. package/utilities/astFromValue.js.flow +8 -7
  195. package/utilities/astFromValue.mjs +7 -6
  196. package/utilities/buildASTSchema.js +63 -62
  197. package/utilities/buildASTSchema.js.flow +92 -108
  198. package/utilities/buildASTSchema.mjs +61 -62
  199. package/utilities/buildClientSchema.js +38 -45
  200. package/utilities/buildClientSchema.js.flow +66 -79
  201. package/utilities/buildClientSchema.mjs +37 -44
  202. package/utilities/coerceValue.js +6 -7
  203. package/utilities/coerceValue.js.flow +5 -4
  204. package/utilities/coerceValue.mjs +7 -8
  205. package/utilities/concatAST.js +9 -13
  206. package/utilities/concatAST.js.flow +4 -10
  207. package/utilities/concatAST.mjs +6 -13
  208. package/utilities/extendSchema.js +219 -511
  209. package/utilities/extendSchema.js.flow +195 -304
  210. package/utilities/extendSchema.mjs +218 -512
  211. package/utilities/findBreakingChanges.js +54 -95
  212. package/utilities/findBreakingChanges.js.flow +49 -47
  213. package/utilities/findBreakingChanges.mjs +80 -95
  214. package/utilities/findDeprecatedUsages.js +4 -4
  215. package/utilities/findDeprecatedUsages.js.flow +5 -5
  216. package/utilities/findDeprecatedUsages.mjs +4 -4
  217. package/utilities/getOperationAST.js +2 -2
  218. package/utilities/getOperationAST.js.flow +5 -2
  219. package/utilities/getOperationAST.mjs +2 -2
  220. package/utilities/getOperationRootType.js +24 -24
  221. package/utilities/getOperationRootType.js.flow +40 -35
  222. package/utilities/getOperationRootType.mjs +24 -24
  223. package/utilities/index.js +9 -1
  224. package/utilities/index.js.flow +13 -6
  225. package/utilities/index.mjs +13 -8
  226. package/utilities/introspectionFromSchema.js +6 -4
  227. package/utilities/introspectionFromSchema.js.flow +8 -7
  228. package/utilities/introspectionFromSchema.mjs +6 -5
  229. package/utilities/introspectionQuery.js +2 -2
  230. package/utilities/introspectionQuery.js.flow +2 -2
  231. package/utilities/introspectionQuery.mjs +2 -2
  232. package/utilities/isValidJSValue.js +4 -2
  233. package/utilities/isValidJSValue.js.flow +3 -2
  234. package/utilities/isValidJSValue.mjs +4 -2
  235. package/utilities/isValidLiteralValue.js +2 -2
  236. package/utilities/isValidLiteralValue.js.flow +4 -4
  237. package/utilities/isValidLiteralValue.mjs +2 -2
  238. package/utilities/lexicographicSortSchema.js +84 -123
  239. package/utilities/lexicographicSortSchema.js.flow +68 -96
  240. package/utilities/lexicographicSortSchema.mjs +84 -123
  241. package/utilities/schemaPrinter.js +47 -73
  242. package/utilities/schemaPrinter.js.flow +69 -120
  243. package/utilities/schemaPrinter.mjs +45 -72
  244. package/utilities/separateOperations.js +8 -12
  245. package/utilities/separateOperations.js.flow +6 -3
  246. package/utilities/separateOperations.mjs +8 -12
  247. package/utilities/stripIgnoredCharacters.js +140 -0
  248. package/utilities/stripIgnoredCharacters.js.flow +129 -0
  249. package/utilities/stripIgnoredCharacters.mjs +127 -0
  250. package/utilities/typeComparators.js +2 -2
  251. package/utilities/typeComparators.js.flow +4 -3
  252. package/utilities/typeComparators.mjs +2 -2
  253. package/utilities/typeFromAST.js +9 -4
  254. package/utilities/typeFromAST.js.flow +15 -9
  255. package/utilities/typeFromAST.mjs +6 -4
  256. package/utilities/valueFromAST.js +7 -4
  257. package/utilities/valueFromAST.js.flow +7 -5
  258. package/utilities/valueFromAST.mjs +6 -4
  259. package/utilities/valueFromASTUntyped.js +11 -6
  260. package/utilities/valueFromASTUntyped.js.flow +9 -5
  261. package/utilities/valueFromASTUntyped.mjs +10 -6
  262. package/validation/ValidationContext.js +1 -1
  263. package/validation/ValidationContext.js.flow +19 -20
  264. package/validation/ValidationContext.mjs +2 -2
  265. package/validation/index.js +1 -1
  266. package/validation/index.js.flow +2 -1
  267. package/validation/index.mjs +3 -2
  268. package/validation/rules/ExecutableDefinitions.js +3 -3
  269. package/validation/rules/ExecutableDefinitions.js.flow +4 -4
  270. package/validation/rules/ExecutableDefinitions.mjs +3 -3
  271. package/validation/rules/FieldsOnCorrectType.js +3 -3
  272. package/validation/rules/FieldsOnCorrectType.js.flow +7 -7
  273. package/validation/rules/FieldsOnCorrectType.mjs +3 -3
  274. package/validation/rules/FragmentsOnCompositeTypes.js +4 -4
  275. package/validation/rules/FragmentsOnCompositeTypes.js.flow +5 -5
  276. package/validation/rules/FragmentsOnCompositeTypes.mjs +4 -4
  277. package/validation/rules/KnownArgumentNames.js +1 -1
  278. package/validation/rules/KnownArgumentNames.js.flow +5 -5
  279. package/validation/rules/KnownArgumentNames.mjs +2 -2
  280. package/validation/rules/KnownDirectives.js +8 -6
  281. package/validation/rules/KnownDirectives.js.flow +11 -9
  282. package/validation/rules/KnownDirectives.mjs +8 -6
  283. package/validation/rules/KnownFragmentNames.js +3 -3
  284. package/validation/rules/KnownFragmentNames.js.flow +4 -4
  285. package/validation/rules/KnownFragmentNames.mjs +3 -3
  286. package/validation/rules/KnownTypeNames.js +2 -2
  287. package/validation/rules/KnownTypeNames.js.flow +6 -6
  288. package/validation/rules/KnownTypeNames.mjs +2 -2
  289. package/validation/rules/LoneAnonymousOperation.js +3 -3
  290. package/validation/rules/LoneAnonymousOperation.js.flow +4 -4
  291. package/validation/rules/LoneAnonymousOperation.mjs +3 -3
  292. package/validation/rules/LoneSchemaDefinition.js +2 -2
  293. package/validation/rules/LoneSchemaDefinition.js.flow +3 -3
  294. package/validation/rules/LoneSchemaDefinition.mjs +2 -2
  295. package/validation/rules/NoFragmentCycles.js +2 -2
  296. package/validation/rules/NoFragmentCycles.js.flow +4 -4
  297. package/validation/rules/NoFragmentCycles.mjs +2 -2
  298. package/validation/rules/NoUndefinedVariables.js +2 -2
  299. package/validation/rules/NoUndefinedVariables.js.flow +3 -3
  300. package/validation/rules/NoUndefinedVariables.mjs +2 -2
  301. package/validation/rules/NoUnusedFragments.js +7 -7
  302. package/validation/rules/NoUnusedFragments.js.flow +4 -4
  303. package/validation/rules/NoUnusedFragments.mjs +7 -7
  304. package/validation/rules/NoUnusedVariables.js +5 -5
  305. package/validation/rules/NoUnusedVariables.js.flow +6 -5
  306. package/validation/rules/NoUnusedVariables.mjs +5 -5
  307. package/validation/rules/OverlappingFieldsCanBeMerged.js +26 -23
  308. package/validation/rules/OverlappingFieldsCanBeMerged.js.flow +17 -17
  309. package/validation/rules/OverlappingFieldsCanBeMerged.mjs +26 -23
  310. package/validation/rules/PossibleFragmentSpreads.js +4 -4
  311. package/validation/rules/PossibleFragmentSpreads.js.flow +5 -5
  312. package/validation/rules/PossibleFragmentSpreads.mjs +4 -4
  313. package/validation/rules/PossibleTypeExtensions.js +3 -3
  314. package/validation/rules/PossibleTypeExtensions.js.flow +5 -5
  315. package/validation/rules/PossibleTypeExtensions.mjs +4 -4
  316. package/validation/rules/ProvidedRequiredArguments.js +6 -8
  317. package/validation/rules/ProvidedRequiredArguments.js.flow +8 -8
  318. package/validation/rules/ProvidedRequiredArguments.mjs +7 -9
  319. package/validation/rules/ScalarLeafs.js +4 -4
  320. package/validation/rules/ScalarLeafs.js.flow +6 -6
  321. package/validation/rules/ScalarLeafs.mjs +4 -4
  322. package/validation/rules/SingleFieldSubscriptions.js +2 -2
  323. package/validation/rules/SingleFieldSubscriptions.js.flow +4 -4
  324. package/validation/rules/SingleFieldSubscriptions.mjs +2 -2
  325. package/validation/rules/UniqueArgumentNames.js +2 -2
  326. package/validation/rules/UniqueArgumentNames.js.flow +3 -3
  327. package/validation/rules/UniqueArgumentNames.mjs +2 -2
  328. package/validation/rules/UniqueDirectiveNames.js +2 -2
  329. package/validation/rules/UniqueDirectiveNames.js.flow +3 -3
  330. package/validation/rules/UniqueDirectiveNames.mjs +2 -2
  331. package/validation/rules/UniqueDirectivesPerLocation.js +3 -2
  332. package/validation/rules/UniqueDirectivesPerLocation.js.flow +4 -4
  333. package/validation/rules/UniqueDirectivesPerLocation.mjs +3 -2
  334. package/validation/rules/UniqueEnumValueNames.js +4 -8
  335. package/validation/rules/UniqueEnumValueNames.js.flow +6 -8
  336. package/validation/rules/UniqueEnumValueNames.mjs +4 -8
  337. package/validation/rules/UniqueFieldDefinitionNames.js +4 -8
  338. package/validation/rules/UniqueFieldDefinitionNames.js.flow +6 -8
  339. package/validation/rules/UniqueFieldDefinitionNames.mjs +4 -8
  340. package/validation/rules/UniqueFragmentNames.js +2 -2
  341. package/validation/rules/UniqueFragmentNames.js.flow +3 -3
  342. package/validation/rules/UniqueFragmentNames.mjs +2 -2
  343. package/validation/rules/UniqueInputFieldNames.js +2 -4
  344. package/validation/rules/UniqueInputFieldNames.js.flow +3 -4
  345. package/validation/rules/UniqueInputFieldNames.mjs +2 -4
  346. package/validation/rules/UniqueOperationNames.js +2 -2
  347. package/validation/rules/UniqueOperationNames.js.flow +3 -3
  348. package/validation/rules/UniqueOperationNames.mjs +2 -2
  349. package/validation/rules/UniqueOperationTypes.js +2 -2
  350. package/validation/rules/UniqueOperationTypes.js.flow +3 -3
  351. package/validation/rules/UniqueOperationTypes.mjs +2 -2
  352. package/validation/rules/UniqueTypeNames.js +2 -2
  353. package/validation/rules/UniqueTypeNames.js.flow +4 -4
  354. package/validation/rules/UniqueTypeNames.mjs +2 -2
  355. package/validation/rules/UniqueVariableNames.js +2 -2
  356. package/validation/rules/UniqueVariableNames.js.flow +4 -4
  357. package/validation/rules/UniqueVariableNames.mjs +2 -2
  358. package/validation/rules/ValuesOfCorrectType.js +2 -2
  359. package/validation/rules/ValuesOfCorrectType.js.flow +5 -5
  360. package/validation/rules/ValuesOfCorrectType.mjs +2 -2
  361. package/validation/rules/VariablesAreInputTypes.js +3 -3
  362. package/validation/rules/VariablesAreInputTypes.js.flow +5 -5
  363. package/validation/rules/VariablesAreInputTypes.mjs +3 -3
  364. package/validation/rules/VariablesInAllowedPosition.js +3 -3
  365. package/validation/rules/VariablesInAllowedPosition.js.flow +7 -8
  366. package/validation/rules/VariablesInAllowedPosition.mjs +3 -3
  367. package/validation/specifiedRules.js +2 -2
  368. package/validation/specifiedRules.js.flow +13 -6
  369. package/validation/specifiedRules.mjs +7 -7
  370. package/validation/validate.js +2 -2
  371. package/validation/validate.js.flow +10 -6
  372. package/validation/validate.mjs +2 -2
  373. package/jsutils/MaybePromise.js +0 -1
  374. package/jsutils/MaybePromise.mjs +0 -0
  375. package/language/blockStringValue.js +0 -73
  376. package/language/blockStringValue.js.flow +0 -64
  377. package/language/blockStringValue.mjs +0 -66
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2015-present, Facebook, Inc.
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -18,8 +18,8 @@ import isPromise from '../jsutils/isPromise';
18
18
  import memoize3 from '../jsutils/memoize3';
19
19
  import promiseForObject from '../jsutils/promiseForObject';
20
20
  import promiseReduce from '../jsutils/promiseReduce';
21
- import type { ObjMap } from '../jsutils/ObjMap';
22
- import type { MaybePromise } from '../jsutils/MaybePromise';
21
+ import { type ObjMap } from '../jsutils/ObjMap';
22
+ import { type PromiseOrValue } from '../jsutils/PromiseOrValue';
23
23
 
24
24
  import { getOperationRootType } from '../utilities/getOperationRootType';
25
25
  import { typeFromAST } from '../utilities/typeFromAST';
@@ -30,24 +30,23 @@ import {
30
30
  getDirectiveValues,
31
31
  } from './values';
32
32
  import {
33
+ type GraphQLObjectType,
34
+ type GraphQLOutputType,
35
+ type GraphQLLeafType,
36
+ type GraphQLAbstractType,
37
+ type GraphQLField,
38
+ type GraphQLFieldResolver,
39
+ type GraphQLResolveInfo,
40
+ type GraphQLTypeResolver,
41
+ type ResponsePath,
42
+ type GraphQLList,
33
43
  isObjectType,
34
44
  isAbstractType,
35
45
  isLeafType,
36
46
  isListType,
37
47
  isNonNullType,
38
48
  } from '../type/definition';
39
- import type {
40
- GraphQLObjectType,
41
- GraphQLOutputType,
42
- GraphQLLeafType,
43
- GraphQLAbstractType,
44
- GraphQLField,
45
- GraphQLFieldResolver,
46
- GraphQLResolveInfo,
47
- ResponsePath,
48
- GraphQLList,
49
- } from '../type/definition';
50
- import type { GraphQLSchema } from '../type/schema';
49
+ import { type GraphQLSchema } from '../type/schema';
51
50
  import {
52
51
  SchemaMetaFieldDef,
53
52
  TypeMetaFieldDef,
@@ -58,14 +57,14 @@ import {
58
57
  GraphQLSkipDirective,
59
58
  } from '../type/directives';
60
59
  import { assertValidSchema } from '../type/validate';
61
- import type {
62
- DocumentNode,
63
- OperationDefinitionNode,
64
- SelectionSetNode,
65
- FieldNode,
66
- FragmentSpreadNode,
67
- InlineFragmentNode,
68
- FragmentDefinitionNode,
60
+ import {
61
+ type DocumentNode,
62
+ type OperationDefinitionNode,
63
+ type SelectionSetNode,
64
+ type FieldNode,
65
+ type FragmentSpreadNode,
66
+ type InlineFragmentNode,
67
+ type FragmentDefinitionNode,
69
68
  } from '../language/ast';
70
69
 
71
70
  /**
@@ -102,6 +101,7 @@ export type ExecutionContext = {|
102
101
  operation: OperationDefinitionNode,
103
102
  variableValues: { [variable: string]: mixed },
104
103
  fieldResolver: GraphQLFieldResolver<any, any>,
104
+ typeResolver: GraphQLTypeResolver<any, any>,
105
105
  errors: Array<GraphQLError>,
106
106
  |};
107
107
 
@@ -124,6 +124,7 @@ export type ExecutionArgs = {|
124
124
  variableValues?: ?{ [variable: string]: mixed },
125
125
  operationName?: ?string,
126
126
  fieldResolver?: ?GraphQLFieldResolver<any, any>,
127
+ typeResolver?: ?GraphQLTypeResolver<any, any>,
127
128
  |};
128
129
 
129
130
  /**
@@ -141,7 +142,7 @@ export type ExecutionArgs = {|
141
142
  declare function execute(
142
143
  ExecutionArgs,
143
144
  ..._: []
144
- ): MaybePromise<ExecutionResult>;
145
+ ): PromiseOrValue<ExecutionResult>;
145
146
  /* eslint-disable no-redeclare */
146
147
  declare function execute(
147
148
  schema: GraphQLSchema,
@@ -151,7 +152,8 @@ declare function execute(
151
152
  variableValues?: ?{ [variable: string]: mixed },
152
153
  operationName?: ?string,
153
154
  fieldResolver?: ?GraphQLFieldResolver<any, any>,
154
- ): MaybePromise<ExecutionResult>;
155
+ typeResolver?: ?GraphQLTypeResolver<any, any>,
156
+ ): PromiseOrValue<ExecutionResult>;
155
157
  export function execute(
156
158
  argsOrSchema,
157
159
  document,
@@ -160,6 +162,7 @@ export function execute(
160
162
  variableValues,
161
163
  operationName,
162
164
  fieldResolver,
165
+ typeResolver,
163
166
  ) {
164
167
  /* eslint-enable no-redeclare */
165
168
  // Extract arguments from object args if provided.
@@ -172,6 +175,7 @@ export function execute(
172
175
  argsOrSchema.variableValues,
173
176
  argsOrSchema.operationName,
174
177
  argsOrSchema.fieldResolver,
178
+ argsOrSchema.typeResolver,
175
179
  )
176
180
  : executeImpl(
177
181
  argsOrSchema,
@@ -181,6 +185,7 @@ export function execute(
181
185
  variableValues,
182
186
  operationName,
183
187
  fieldResolver,
188
+ typeResolver,
184
189
  );
185
190
  }
186
191
 
@@ -192,6 +197,7 @@ function executeImpl(
192
197
  variableValues,
193
198
  operationName,
194
199
  fieldResolver,
200
+ typeResolver,
195
201
  ) {
196
202
  // If arguments are missing or incorrect, throw an error.
197
203
  assertValidExecutionArguments(schema, document, variableValues);
@@ -206,6 +212,7 @@ function executeImpl(
206
212
  variableValues,
207
213
  operationName,
208
214
  fieldResolver,
215
+ typeResolver,
209
216
  );
210
217
 
211
218
  // Return early errors if execution context failed.
@@ -230,7 +237,7 @@ function executeImpl(
230
237
  */
231
238
  function buildResponse(
232
239
  exeContext: ExecutionContext,
233
- data: MaybePromise<ObjMap<mixed> | null>,
240
+ data: PromiseOrValue<ObjMap<mixed> | null>,
234
241
  ) {
235
242
  if (isPromise(data)) {
236
243
  return data.then(resolved => buildResponse(exeContext, resolved));
@@ -301,6 +308,7 @@ export function buildExecutionContext(
301
308
  rawVariableValues: ?ObjMap<mixed>,
302
309
  operationName: ?string,
303
310
  fieldResolver: ?GraphQLFieldResolver<any, any>,
311
+ typeResolver?: ?GraphQLTypeResolver<any, any>,
304
312
  ): $ReadOnlyArray<GraphQLError> | ExecutionContext {
305
313
  const errors: Array<GraphQLError> = [];
306
314
  let operation: OperationDefinitionNode | void;
@@ -371,6 +379,7 @@ export function buildExecutionContext(
371
379
  operation,
372
380
  variableValues,
373
381
  fieldResolver: fieldResolver || defaultFieldResolver,
382
+ typeResolver: typeResolver || defaultTypeResolver,
374
383
  errors,
375
384
  };
376
385
  }
@@ -382,7 +391,7 @@ function executeOperation(
382
391
  exeContext: ExecutionContext,
383
392
  operation: OperationDefinitionNode,
384
393
  rootValue: mixed,
385
- ): MaybePromise<ObjMap<mixed> | null> {
394
+ ): PromiseOrValue<ObjMap<mixed> | null> {
386
395
  const type = getOperationRootType(exeContext.schema, operation);
387
396
  const fields = collectFields(
388
397
  exeContext,
@@ -427,7 +436,7 @@ function executeFieldsSerially(
427
436
  sourceValue: mixed,
428
437
  path: ResponsePath | void,
429
438
  fields: ObjMap<Array<FieldNode>>,
430
- ): MaybePromise<ObjMap<mixed>> {
439
+ ): PromiseOrValue<ObjMap<mixed>> {
431
440
  return promiseReduce(
432
441
  Object.keys(fields),
433
442
  (results, responseName) => {
@@ -466,7 +475,7 @@ function executeFields(
466
475
  sourceValue: mixed,
467
476
  path: ResponsePath | void,
468
477
  fields: ObjMap<Array<FieldNode>>,
469
- ): MaybePromise<ObjMap<mixed>> {
478
+ ): PromiseOrValue<ObjMap<mixed>> {
470
479
  const results = Object.create(null);
471
480
  let containsPromise = false;
472
481
 
@@ -519,7 +528,7 @@ export function collectFields(
519
528
  for (let i = 0; i < selectionSet.selections.length; i++) {
520
529
  const selection = selectionSet.selections[i];
521
530
  switch (selection.kind) {
522
- case Kind.FIELD:
531
+ case Kind.FIELD: {
523
532
  if (!shouldIncludeNode(exeContext, selection)) {
524
533
  continue;
525
534
  }
@@ -529,7 +538,8 @@ export function collectFields(
529
538
  }
530
539
  fields[name].push(selection);
531
540
  break;
532
- case Kind.INLINE_FRAGMENT:
541
+ }
542
+ case Kind.INLINE_FRAGMENT: {
533
543
  if (
534
544
  !shouldIncludeNode(exeContext, selection) ||
535
545
  !doesFragmentConditionMatch(exeContext, selection, runtimeType)
@@ -544,7 +554,8 @@ export function collectFields(
544
554
  visitedFragmentNames,
545
555
  );
546
556
  break;
547
- case Kind.FRAGMENT_SPREAD:
557
+ }
558
+ case Kind.FRAGMENT_SPREAD: {
548
559
  const fragName = selection.name.value;
549
560
  if (
550
561
  visitedFragmentNames[fragName] ||
@@ -568,6 +579,7 @@ export function collectFields(
568
579
  visitedFragmentNames,
569
580
  );
570
581
  break;
582
+ }
571
583
  }
572
584
  }
573
585
  return fields;
@@ -642,7 +654,7 @@ function resolveField(
642
654
  source: mixed,
643
655
  fieldNodes: $ReadOnlyArray<FieldNode>,
644
656
  path: ResponsePath,
645
- ): MaybePromise<mixed> {
657
+ ): PromiseOrValue<mixed> {
646
658
  const fieldNode = fieldNodes[0];
647
659
  const fieldName = fieldNode.name.value;
648
660
 
@@ -740,7 +752,10 @@ export function resolveFieldValueOrError<TSource>(
740
752
  // Sometimes a non-error is thrown, wrap it as an Error instance to ensure a
741
753
  // consistent Error interface.
742
754
  function asErrorInstance(error: mixed): Error {
743
- return error instanceof Error ? error : new Error(error || undefined);
755
+ if (error instanceof Error) {
756
+ return error;
757
+ }
758
+ return new Error('Unexpected error value: ' + inspect(error));
744
759
  }
745
760
 
746
761
  // This is a small wrapper around completeValue which detects and logs errors
@@ -752,7 +767,7 @@ function completeValueCatchingError(
752
767
  info: GraphQLResolveInfo,
753
768
  path: ResponsePath,
754
769
  result: mixed,
755
- ): MaybePromise<mixed> {
770
+ ): PromiseOrValue<mixed> {
756
771
  try {
757
772
  let completed;
758
773
  if (isPromise(result)) {
@@ -830,7 +845,7 @@ function completeValue(
830
845
  info: GraphQLResolveInfo,
831
846
  path: ResponsePath,
832
847
  result: mixed,
833
- ): MaybePromise<mixed> {
848
+ ): PromiseOrValue<mixed> {
834
849
  // If result is an Error, throw a located error.
835
850
  if (result instanceof Error) {
836
851
  throw result;
@@ -908,7 +923,7 @@ function completeValue(
908
923
  // Not reachable. All possible output types have been considered.
909
924
  /* istanbul ignore next */
910
925
  throw new Error(
911
- `Cannot complete value of unexpected type "${inspect(
926
+ `Cannot complete value of unexpected output type: "${inspect(
912
927
  (returnType: empty),
913
928
  )}".`,
914
929
  );
@@ -925,7 +940,7 @@ function completeListValue(
925
940
  info: GraphQLResolveInfo,
926
941
  path: ResponsePath,
927
942
  result: mixed,
928
- ): MaybePromise<$ReadOnlyArray<mixed>> {
943
+ ): PromiseOrValue<$ReadOnlyArray<mixed>> {
929
944
  invariant(
930
945
  isCollection(result),
931
946
  `Expected Iterable, but did not find one for field ${
@@ -987,10 +1002,10 @@ function completeAbstractValue(
987
1002
  info: GraphQLResolveInfo,
988
1003
  path: ResponsePath,
989
1004
  result: mixed,
990
- ): MaybePromise<ObjMap<mixed>> {
991
- const runtimeType = returnType.resolveType
992
- ? returnType.resolveType(result, exeContext.contextValue, info)
993
- : defaultResolveTypeFn(result, exeContext.contextValue, info, returnType);
1005
+ ): PromiseOrValue<ObjMap<mixed>> {
1006
+ const resolveTypeFn = returnType.resolveType || exeContext.typeResolver;
1007
+ const contextValue = exeContext.contextValue;
1008
+ const runtimeType = resolveTypeFn(result, contextValue, info, returnType);
994
1009
 
995
1010
  if (isPromise(runtimeType)) {
996
1011
  return runtimeType.then(resolvedRuntimeType =>
@@ -1074,7 +1089,7 @@ function completeObjectValue(
1074
1089
  info: GraphQLResolveInfo,
1075
1090
  path: ResponsePath,
1076
1091
  result: mixed,
1077
- ): MaybePromise<ObjMap<mixed>> {
1092
+ ): PromiseOrValue<ObjMap<mixed>> {
1078
1093
  // If there is an isTypeOf predicate function, call it with the
1079
1094
  // current result. If isTypeOf returns false, then raise an error rather
1080
1095
  // than continuing execution.
@@ -1127,7 +1142,7 @@ function collectAndExecuteSubfields(
1127
1142
  fieldNodes: $ReadOnlyArray<FieldNode>,
1128
1143
  path: ResponsePath,
1129
1144
  result: mixed,
1130
- ): MaybePromise<ObjMap<mixed>> {
1145
+ ): PromiseOrValue<ObjMap<mixed>> {
1131
1146
  // Collect sub-fields to execute to complete this value.
1132
1147
  const subFieldNodes = collectSubfields(exeContext, returnType, fieldNodes);
1133
1148
  return executeFields(exeContext, returnType, result, path, subFieldNodes);
@@ -1171,12 +1186,12 @@ function _collectSubfields(
1171
1186
  * Otherwise, test each possible type for the abstract type by calling
1172
1187
  * isTypeOf for the object being coerced, returning the first type that matches.
1173
1188
  */
1174
- function defaultResolveTypeFn(
1175
- value: mixed,
1176
- contextValue: mixed,
1177
- info: GraphQLResolveInfo,
1178
- abstractType: GraphQLAbstractType,
1179
- ): MaybePromise<?GraphQLObjectType | string> {
1189
+ export const defaultTypeResolver: GraphQLTypeResolver<any, *> = function(
1190
+ value,
1191
+ contextValue,
1192
+ info,
1193
+ abstractType,
1194
+ ) {
1180
1195
  // First, look for `__typename`.
1181
1196
  if (
1182
1197
  value !== null &&
@@ -1213,7 +1228,7 @@ function defaultResolveTypeFn(
1213
1228
  }
1214
1229
  });
1215
1230
  }
1216
- }
1231
+ };
1217
1232
 
1218
1233
  /**
1219
1234
  * If a resolve function is not given, then a default resolve behavior is used
@@ -1,7 +1,7 @@
1
1
  function _typeof(obj) { 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
2
 
3
3
  /**
4
- * Copyright (c) 2015-present, Facebook, Inc.
4
+ * Copyright (c) Facebook, Inc. and its affiliates.
5
5
  *
6
6
  * This source code is licensed under the MIT license found in the
7
7
  * LICENSE file in the root directory of this source tree.
@@ -27,18 +27,18 @@ import { isObjectType, isAbstractType, isLeafType, isListType, isNonNullType } f
27
27
  import { SchemaMetaFieldDef, TypeMetaFieldDef, TypeNameMetaFieldDef } from '../type/introspection';
28
28
  import { GraphQLIncludeDirective, GraphQLSkipDirective } from '../type/directives';
29
29
  import { assertValidSchema } from '../type/validate';
30
- export function execute(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver) {
30
+ export function execute(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver) {
31
31
  /* eslint-enable no-redeclare */
32
32
  // Extract arguments from object args if provided.
33
- return arguments.length === 1 ? executeImpl(argsOrSchema.schema, argsOrSchema.document, argsOrSchema.rootValue, argsOrSchema.contextValue, argsOrSchema.variableValues, argsOrSchema.operationName, argsOrSchema.fieldResolver) : executeImpl(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver);
33
+ return arguments.length === 1 ? executeImpl(argsOrSchema.schema, argsOrSchema.document, argsOrSchema.rootValue, argsOrSchema.contextValue, argsOrSchema.variableValues, argsOrSchema.operationName, argsOrSchema.fieldResolver, argsOrSchema.typeResolver) : executeImpl(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver);
34
34
  }
35
35
 
36
- function executeImpl(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver) {
36
+ function executeImpl(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver) {
37
37
  // If arguments are missing or incorrect, throw an error.
38
38
  assertValidExecutionArguments(schema, document, variableValues); // If a valid execution context cannot be created due to incorrect arguments,
39
39
  // a "Response" with only errors is returned.
40
40
 
41
- var exeContext = buildExecutionContext(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver); // Return early errors if execution context failed.
41
+ var exeContext = buildExecutionContext(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver); // Return early errors if execution context failed.
42
42
 
43
43
  if (Array.isArray(exeContext)) {
44
44
  return {
@@ -123,7 +123,7 @@ export function assertValidExecutionArguments(schema, document, rawVariableValue
123
123
  * Throws a GraphQLError if a valid execution context cannot be created.
124
124
  */
125
125
 
126
- export function buildExecutionContext(schema, document, rootValue, contextValue, rawVariableValues, operationName, fieldResolver) {
126
+ export function buildExecutionContext(schema, document, rootValue, contextValue, rawVariableValues, operationName, fieldResolver, typeResolver) {
127
127
  var errors = [];
128
128
  var operation;
129
129
  var hasMultipleAssumedOperations = false;
@@ -184,6 +184,7 @@ export function buildExecutionContext(schema, document, rootValue, contextValue,
184
184
  operation: operation,
185
185
  variableValues: variableValues,
186
186
  fieldResolver: fieldResolver || defaultFieldResolver,
187
+ typeResolver: typeResolver || defaultTypeResolver,
187
188
  errors: errors
188
189
  };
189
190
  }
@@ -294,43 +295,49 @@ export function collectFields(exeContext, runtimeType, selectionSet, fields, vis
294
295
 
295
296
  switch (selection.kind) {
296
297
  case Kind.FIELD:
297
- if (!shouldIncludeNode(exeContext, selection)) {
298
- continue;
299
- }
298
+ {
299
+ if (!shouldIncludeNode(exeContext, selection)) {
300
+ continue;
301
+ }
300
302
 
301
- var name = getFieldEntryKey(selection);
303
+ var name = getFieldEntryKey(selection);
302
304
 
303
- if (!fields[name]) {
304
- fields[name] = [];
305
- }
305
+ if (!fields[name]) {
306
+ fields[name] = [];
307
+ }
306
308
 
307
- fields[name].push(selection);
308
- break;
309
+ fields[name].push(selection);
310
+ break;
311
+ }
309
312
 
310
313
  case Kind.INLINE_FRAGMENT:
311
- if (!shouldIncludeNode(exeContext, selection) || !doesFragmentConditionMatch(exeContext, selection, runtimeType)) {
312
- continue;
313
- }
314
+ {
315
+ if (!shouldIncludeNode(exeContext, selection) || !doesFragmentConditionMatch(exeContext, selection, runtimeType)) {
316
+ continue;
317
+ }
314
318
 
315
- collectFields(exeContext, runtimeType, selection.selectionSet, fields, visitedFragmentNames);
316
- break;
319
+ collectFields(exeContext, runtimeType, selection.selectionSet, fields, visitedFragmentNames);
320
+ break;
321
+ }
317
322
 
318
323
  case Kind.FRAGMENT_SPREAD:
319
- var fragName = selection.name.value;
324
+ {
325
+ var fragName = selection.name.value;
320
326
 
321
- if (visitedFragmentNames[fragName] || !shouldIncludeNode(exeContext, selection)) {
322
- continue;
323
- }
327
+ if (visitedFragmentNames[fragName] || !shouldIncludeNode(exeContext, selection)) {
328
+ continue;
329
+ }
324
330
 
325
- visitedFragmentNames[fragName] = true;
326
- var fragment = exeContext.fragments[fragName];
331
+ visitedFragmentNames[fragName] = true;
332
+ var fragment = exeContext.fragments[fragName];
327
333
 
328
- if (!fragment || !doesFragmentConditionMatch(exeContext, fragment, runtimeType)) {
329
- continue;
330
- }
334
+ if (!fragment || !doesFragmentConditionMatch(exeContext, fragment, runtimeType)) {
335
+ continue;
336
+ }
331
337
 
332
- collectFields(exeContext, runtimeType, fragment.selectionSet, fields, visitedFragmentNames);
333
- break;
338
+ collectFields(exeContext, runtimeType, fragment.selectionSet, fields, visitedFragmentNames);
339
+ break;
340
+ }
334
341
  }
335
342
  }
336
343
 
@@ -450,7 +457,11 @@ export function resolveFieldValueOrError(exeContext, fieldDef, fieldNodes, resol
450
457
  // consistent Error interface.
451
458
 
452
459
  function asErrorInstance(error) {
453
- return error instanceof Error ? error : new Error(error || undefined);
460
+ if (error instanceof Error) {
461
+ return error;
462
+ }
463
+
464
+ return new Error('Unexpected error value: ' + inspect(error));
454
465
  } // This is a small wrapper around completeValue which detects and logs errors
455
466
  // in the execution context.
456
467
 
@@ -565,7 +576,7 @@ function completeValue(exeContext, returnType, fieldNodes, info, path, result) {
565
576
  /* istanbul ignore next */
566
577
 
567
578
 
568
- throw new Error("Cannot complete value of unexpected type \"".concat(inspect(returnType), "\"."));
579
+ throw new Error("Cannot complete value of unexpected output type: \"".concat(inspect(returnType), "\"."));
569
580
  }
570
581
  /**
571
582
  * Complete a list value by completing each item in the list with the
@@ -617,7 +628,9 @@ function completeLeafValue(returnType, result) {
617
628
 
618
629
 
619
630
  function completeAbstractValue(exeContext, returnType, fieldNodes, info, path, result) {
620
- var runtimeType = returnType.resolveType ? returnType.resolveType(result, exeContext.contextValue, info) : defaultResolveTypeFn(result, exeContext.contextValue, info, returnType);
631
+ var resolveTypeFn = returnType.resolveType || exeContext.typeResolver;
632
+ var contextValue = exeContext.contextValue;
633
+ var runtimeType = resolveTypeFn(result, contextValue, info, returnType);
621
634
 
622
635
  if (isPromise(runtimeType)) {
623
636
  return runtimeType.then(function (resolvedRuntimeType) {
@@ -715,7 +728,7 @@ function _collectSubfields(exeContext, returnType, fieldNodes) {
715
728
  */
716
729
 
717
730
 
718
- function defaultResolveTypeFn(value, contextValue, info, abstractType) {
731
+ export var defaultTypeResolver = function defaultTypeResolver(value, contextValue, info, abstractType) {
719
732
  // First, look for `__typename`.
720
733
  if (value !== null && _typeof(value) === 'object' && typeof value.__typename === 'string') {
721
734
  return value.__typename;
@@ -748,7 +761,7 @@ function defaultResolveTypeFn(value, contextValue, info, abstractType) {
748
761
  }
749
762
  });
750
763
  }
751
- }
764
+ };
752
765
  /**
753
766
  * If a resolve function is not given, then a default resolve behavior is used
754
767
  * which takes the property of the source object of the same name as the field
@@ -756,7 +769,6 @@ function defaultResolveTypeFn(value, contextValue, info, abstractType) {
756
769
  * of calling that function while passing along args and context value.
757
770
  */
758
771
 
759
-
760
772
  export var defaultFieldResolver = function defaultFieldResolver(source, args, contextValue, info) {
761
773
  // ensure source is a value for which property access is acceptable.
762
774
  if (_typeof(source) === 'object' || typeof source === 'function') {
@@ -789,4 +801,4 @@ export function getFieldDef(schema, parentType, fieldName) {
789
801
  }
790
802
 
791
803
  return parentType.getFields()[fieldName];
792
- }
804
+ }
@@ -15,6 +15,12 @@ Object.defineProperty(exports, "defaultFieldResolver", {
15
15
  return _execute.defaultFieldResolver;
16
16
  }
17
17
  });
18
+ Object.defineProperty(exports, "defaultTypeResolver", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _execute.defaultTypeResolver;
22
+ }
23
+ });
18
24
  Object.defineProperty(exports, "responsePathAsArray", {
19
25
  enumerable: true,
20
26
  get: function get() {
@@ -30,4 +36,4 @@ Object.defineProperty(exports, "getDirectiveValues", {
30
36
 
31
37
  var _execute = require("./execute");
32
38
 
33
- var _values = require("./values");
39
+ var _values = require("./values");
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2015-present, Facebook, Inc.
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -7,7 +7,12 @@
7
7
  * @flow strict
8
8
  */
9
9
 
10
- export { execute, defaultFieldResolver, responsePathAsArray } from './execute';
11
- export { getDirectiveValues } from './values';
12
-
10
+ export {
11
+ execute,
12
+ defaultFieldResolver,
13
+ defaultTypeResolver,
14
+ responsePathAsArray,
15
+ } from './execute';
13
16
  export type { ExecutionArgs, ExecutionResult } from './execute';
17
+
18
+ export { getDirectiveValues } from './values';
@@ -1,10 +1,10 @@
1
1
  /**
2
- * Copyright (c) 2015-present, Facebook, Inc.
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
7
  *
8
8
  */
9
- export { execute, defaultFieldResolver, responsePathAsArray } from './execute';
10
- export { getDirectiveValues } from './values';
9
+ export { execute, defaultFieldResolver, defaultTypeResolver, responsePathAsArray } from './execute';
10
+ export { getDirectiveValues } from './values';
@@ -32,7 +32,7 @@ var _definition = require("../type/definition");
32
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
33
 
34
34
  /**
35
- * Copyright (c) 2015-present, Facebook, Inc.
35
+ * Copyright (c) Facebook, Inc. and its affiliates.
36
36
  *
37
37
  * This source code is licensed under the MIT license found in the
38
38
  * LICENSE file in the root directory of this source tree.
@@ -61,7 +61,7 @@ function getVariableValues(schema, varDefNodes, inputs) {
61
61
  if (!(0, _definition.isInputType)(varType)) {
62
62
  // Must use input types for variables. This should be caught during
63
63
  // validation, however is checked again here for safety.
64
- errors.push(new _GraphQLError.GraphQLError("Variable \"$".concat(varName, "\" expected value of type ") + "\"".concat((0, _printer.print)(varDefNode.type), "\" which cannot be used as an input type."), [varDefNode.type]));
64
+ errors.push(new _GraphQLError.GraphQLError("Variable \"$".concat(varName, "\" expected value of type ") + "\"".concat((0, _printer.print)(varDefNode.type), "\" which cannot be used as an input type."), varDefNode.type));
65
65
  } else {
66
66
  var hasValue = hasOwnProperty(inputs, varName);
67
67
  var value = hasValue ? inputs[varName] : undefined;
@@ -73,7 +73,7 @@ function getVariableValues(schema, varDefNodes, inputs) {
73
73
  } else if ((!hasValue || value === null) && (0, _definition.isNonNullType)(varType)) {
74
74
  // If no value or a nullish value was provided to a variable with a
75
75
  // non-null type (required), produce an error.
76
- errors.push(new _GraphQLError.GraphQLError(hasValue ? "Variable \"$".concat(varName, "\" of non-null type ") + "\"".concat((0, _inspect.default)(varType), "\" must not be null.") : "Variable \"$".concat(varName, "\" of required type ") + "\"".concat((0, _inspect.default)(varType), "\" was not provided."), [varDefNode]));
76
+ errors.push(new _GraphQLError.GraphQLError(hasValue ? "Variable \"$".concat(varName, "\" of non-null type ") + "\"".concat((0, _inspect.default)(varType), "\" must not be null.") : "Variable \"$".concat(varName, "\" of required type ") + "\"".concat((0, _inspect.default)(varType), "\" was not provided."), varDefNode));
77
77
  } else if (hasValue) {
78
78
  if (value === null) {
79
79
  // If the explicit value `null` was provided, an entry in the coerced
@@ -160,11 +160,11 @@ function getArgumentValues(def, node, variableValues) {
160
160
 
161
161
  if (argumentNode && argumentNode.value.kind === _kinds.Kind.VARIABLE) {
162
162
  var variableName = argumentNode.value.name.value;
163
- hasValue = variableValues && hasOwnProperty(variableValues, variableName);
164
- isNull = variableValues && variableValues[variableName] === null;
163
+ hasValue = variableValues != null && hasOwnProperty(variableValues, variableName);
164
+ isNull = variableValues != null && variableValues[variableName] === null;
165
165
  } else {
166
166
  hasValue = argumentNode != null;
167
- isNull = argumentNode && argumentNode.value.kind === _kinds.Kind.NULL;
167
+ isNull = argumentNode != null && argumentNode.value.kind === _kinds.Kind.NULL;
168
168
  }
169
169
 
170
170
  if (!hasValue && argDef.defaultValue !== undefined) {
@@ -175,12 +175,12 @@ function getArgumentValues(def, node, variableValues) {
175
175
  // If no argument or a null value was provided to an argument with a
176
176
  // non-null type (required), produce a field error.
177
177
  if (isNull) {
178
- throw new _GraphQLError.GraphQLError("Argument \"".concat(name, "\" of non-null type \"").concat((0, _inspect.default)(argType), "\" ") + 'must not be null.', [argumentNode.value]);
178
+ throw new _GraphQLError.GraphQLError("Argument \"".concat(name, "\" of non-null type \"").concat((0, _inspect.default)(argType), "\" ") + 'must not be null.', argumentNode.value);
179
179
  } else if (argumentNode && argumentNode.value.kind === _kinds.Kind.VARIABLE) {
180
180
  var _variableName = argumentNode.value.name.value;
181
- throw new _GraphQLError.GraphQLError("Argument \"".concat(name, "\" of required type \"").concat((0, _inspect.default)(argType), "\" ") + "was provided the variable \"$".concat(_variableName, "\" ") + 'which was not provided a runtime value.', [argumentNode.value]);
181
+ throw new _GraphQLError.GraphQLError("Argument \"".concat(name, "\" of required type \"").concat((0, _inspect.default)(argType), "\" ") + "was provided the variable \"$".concat(_variableName, "\" ") + 'which was not provided a runtime value.', argumentNode.value);
182
182
  } else {
183
- throw new _GraphQLError.GraphQLError("Argument \"".concat(name, "\" of required type \"").concat((0, _inspect.default)(argType), "\" ") + 'was not provided.', [node]);
183
+ throw new _GraphQLError.GraphQLError("Argument \"".concat(name, "\" of required type \"").concat((0, _inspect.default)(argType), "\" ") + 'was not provided.', node);
184
184
  }
185
185
  } else if (hasValue) {
186
186
  if (argumentNode.value.kind === _kinds.Kind.NULL) {
@@ -202,7 +202,7 @@ function getArgumentValues(def, node, variableValues) {
202
202
  // Note: ValuesOfCorrectType validation should catch this before
203
203
  // execution. This is a runtime check to ensure execution does not
204
204
  // continue with an invalid argument value.
205
- throw new _GraphQLError.GraphQLError("Argument \"".concat(name, "\" has invalid value ").concat((0, _printer.print)(valueNode), "."), [argumentNode.value]);
205
+ throw new _GraphQLError.GraphQLError("Argument \"".concat(name, "\" has invalid value ").concat((0, _printer.print)(valueNode), "."), argumentNode.value);
206
206
  }
207
207
 
208
208
  coercedValues[name] = coercedValue;
@@ -237,4 +237,4 @@ function getDirectiveValues(directiveDef, node, variableValues) {
237
237
 
238
238
  function hasOwnProperty(obj, prop) {
239
239
  return Object.prototype.hasOwnProperty.call(obj, prop);
240
- }
240
+ }