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.
@@ -8,9 +8,15 @@
8
8
  */
9
9
 
10
10
  import find from '../polyfills/find';
11
+ import flatMap from '../polyfills/flatMap';
11
12
  import objectValues from '../polyfills/objectValues';
12
13
  import objectEntries from '../polyfills/objectEntries';
13
14
  import {
15
+ type GraphQLObjectType,
16
+ type GraphQLInterfaceType,
17
+ type GraphQLUnionType,
18
+ type GraphQLEnumType,
19
+ type GraphQLInputObjectType,
14
20
  isObjectType,
15
21
  isInterfaceType,
16
22
  isUnionType,
@@ -21,26 +27,17 @@ import {
21
27
  isOutputType,
22
28
  isRequiredArgument,
23
29
  } from './definition';
24
- import type {
25
- GraphQLObjectType,
26
- GraphQLInterfaceType,
27
- GraphQLUnionType,
28
- GraphQLEnumType,
29
- GraphQLInputObjectType,
30
- } from './definition';
31
- import { isDirective } from './directives';
32
- import type { GraphQLDirective } from './directives';
30
+ import { type GraphQLDirective, isDirective } from './directives';
33
31
  import { isIntrospectionType } from './introspection';
34
- import { assertSchema } from './schema';
35
- import type { GraphQLSchema } from './schema';
32
+ import { type GraphQLSchema, assertSchema } from './schema';
36
33
  import inspect from '../jsutils/inspect';
37
34
  import { GraphQLError } from '../error/GraphQLError';
38
- import type {
39
- ASTNode,
40
- FieldDefinitionNode,
41
- InputValueDefinitionNode,
42
- NamedTypeNode,
43
- TypeNode,
35
+ import {
36
+ type ASTNode,
37
+ type FieldDefinitionNode,
38
+ type InputValueDefinitionNode,
39
+ type NamedTypeNode,
40
+ type TypeNode,
44
41
  } from '../language/ast';
45
42
  import { isValidNameError } from '../utilities/assertValidName';
46
43
  import { isEqualType, isTypeSubTypeOf } from '../utilities/typeComparators';
@@ -100,7 +97,7 @@ class SchemaValidationContext {
100
97
  message: string,
101
98
  nodes?: $ReadOnlyArray<?ASTNode> | ?ASTNode,
102
99
  ): void {
103
- const _nodes = (Array.isArray(nodes) ? nodes : [nodes]).filter(Boolean);
100
+ const _nodes = Array.isArray(nodes) ? nodes.filter(Boolean) : nodes;
104
101
  this.addError(new GraphQLError(message, _nodes));
105
102
  }
106
103
 
@@ -548,16 +545,7 @@ function getAllSubNodes<T: ASTNode, K: ASTNode, L: ASTNode>(
548
545
  object: SDLDefinedObject<T, K>,
549
546
  getter: (T | K) => ?(L | $ReadOnlyArray<L>),
550
547
  ): $ReadOnlyArray<L> {
551
- let result = [];
552
- for (const astNode of getAllNodes(object)) {
553
- if (astNode) {
554
- const subNodes = getter(astNode);
555
- if (subNodes) {
556
- result = result.concat(subNodes);
557
- }
558
- }
559
- }
560
- return result;
548
+ return flatMap(getAllNodes(object), item => getter(item) || []);
561
549
  }
562
550
 
563
551
  function getImplementsInterfaceNode(
package/type/validate.mjs CHANGED
@@ -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,6 +7,7 @@
7
7
  *
8
8
  */
9
9
  import find from '../polyfills/find';
10
+ import flatMap from '../polyfills/flatMap';
10
11
  import objectValues from '../polyfills/objectValues';
11
12
  import objectEntries from '../polyfills/objectEntries';
12
13
  import { isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType, isNamedType, isInputType, isOutputType, isRequiredArgument } from './definition';
@@ -70,7 +71,7 @@ function () {
70
71
  var _proto = SchemaValidationContext.prototype;
71
72
 
72
73
  _proto.reportError = function reportError(message, nodes) {
73
- var _nodes = (Array.isArray(nodes) ? nodes : [nodes]).filter(Boolean);
74
+ var _nodes = Array.isArray(nodes) ? nodes.filter(Boolean) : nodes;
74
75
 
75
76
  this.addError(new GraphQLError(message, _nodes));
76
77
  };
@@ -652,39 +653,9 @@ function getAllNodes(object) {
652
653
  }
653
654
 
654
655
  function getAllSubNodes(object, getter) {
655
- var result = [];
656
- var _iteratorNormalCompletion14 = true;
657
- var _didIteratorError14 = false;
658
- var _iteratorError14 = undefined;
659
-
660
- try {
661
- for (var _iterator14 = getAllNodes(object)[Symbol.iterator](), _step14; !(_iteratorNormalCompletion14 = (_step14 = _iterator14.next()).done); _iteratorNormalCompletion14 = true) {
662
- var astNode = _step14.value;
663
-
664
- if (astNode) {
665
- var subNodes = getter(astNode);
666
-
667
- if (subNodes) {
668
- result = result.concat(subNodes);
669
- }
670
- }
671
- }
672
- } catch (err) {
673
- _didIteratorError14 = true;
674
- _iteratorError14 = err;
675
- } finally {
676
- try {
677
- if (!_iteratorNormalCompletion14 && _iterator14.return != null) {
678
- _iterator14.return();
679
- }
680
- } finally {
681
- if (_didIteratorError14) {
682
- throw _iteratorError14;
683
- }
684
- }
685
- }
686
-
687
- return result;
656
+ return flatMap(getAllNodes(object), function (item) {
657
+ return getter(item) || [];
658
+ });
688
659
  }
689
660
 
690
661
  function getImplementsInterfaceNode(type, iface) {
@@ -721,29 +692,29 @@ function getAllFieldArgNodes(type, fieldName, argName) {
721
692
  var fieldNode = getFieldNode(type, fieldName);
722
693
 
723
694
  if (fieldNode && fieldNode.arguments) {
724
- var _iteratorNormalCompletion15 = true;
725
- var _didIteratorError15 = false;
726
- var _iteratorError15 = undefined;
695
+ var _iteratorNormalCompletion14 = true;
696
+ var _didIteratorError14 = false;
697
+ var _iteratorError14 = undefined;
727
698
 
728
699
  try {
729
- for (var _iterator15 = fieldNode.arguments[Symbol.iterator](), _step15; !(_iteratorNormalCompletion15 = (_step15 = _iterator15.next()).done); _iteratorNormalCompletion15 = true) {
730
- var node = _step15.value;
700
+ for (var _iterator14 = fieldNode.arguments[Symbol.iterator](), _step14; !(_iteratorNormalCompletion14 = (_step14 = _iterator14.next()).done); _iteratorNormalCompletion14 = true) {
701
+ var node = _step14.value;
731
702
 
732
703
  if (node.name.value === argName) {
733
704
  argNodes.push(node);
734
705
  }
735
706
  }
736
707
  } catch (err) {
737
- _didIteratorError15 = true;
738
- _iteratorError15 = err;
708
+ _didIteratorError14 = true;
709
+ _iteratorError14 = err;
739
710
  } finally {
740
711
  try {
741
- if (!_iteratorNormalCompletion15 && _iterator15.return != null) {
742
- _iterator15.return();
712
+ if (!_iteratorNormalCompletion14 && _iterator14.return != null) {
713
+ _iterator14.return();
743
714
  }
744
715
  } finally {
745
- if (_didIteratorError15) {
746
- throw _iteratorError15;
716
+ if (_didIteratorError14) {
717
+ throw _iteratorError14;
747
718
  }
748
719
  }
749
720
  }
@@ -776,4 +747,4 @@ function getUnionMemberTypeNodes(union, typeName) {
776
747
  }).filter(function (typeNode) {
777
748
  return typeNode.name.value === typeName;
778
749
  });
779
- }
750
+ }
@@ -18,7 +18,7 @@ var _typeFromAST = require("./typeFromAST");
18
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
19
 
20
20
  /**
21
- * Copyright (c) 2015-present, Facebook, Inc.
21
+ * Copyright (c) Facebook, Inc. and its affiliates.
22
22
  *
23
23
  * This source code is licensed under the MIT license found in the
24
24
  * LICENSE file in the root directory of this source tree.
@@ -36,7 +36,9 @@ var TypeInfo =
36
36
  function () {
37
37
  function TypeInfo(schema, // NOTE: this experimental optional second parameter is only needed in order
38
38
  // to support non-spec-compliant codebases. You should never need to use it.
39
+ // It may disappear in the future.
39
40
  getFieldDefFn, // Initial type may be provided in rare cases to facilitate traversals
41
+ // beginning somewhere other than documents.
40
42
  initialType) {
41
43
  this._schema = schema;
42
44
  this._typeStack = [];
@@ -122,128 +124,146 @@ function () {
122
124
 
123
125
  switch (node.kind) {
124
126
  case _kinds.Kind.SELECTION_SET:
125
- var namedType = (0, _definition.getNamedType)(this.getType());
127
+ {
128
+ var namedType = (0, _definition.getNamedType)(this.getType());
126
129
 
127
- this._parentTypeStack.push((0, _definition.isCompositeType)(namedType) ? namedType : undefined);
130
+ this._parentTypeStack.push((0, _definition.isCompositeType)(namedType) ? namedType : undefined);
128
131
 
129
- break;
132
+ break;
133
+ }
130
134
 
131
135
  case _kinds.Kind.FIELD:
132
- var parentType = this.getParentType();
133
- var fieldDef;
134
- var fieldType;
136
+ {
137
+ var parentType = this.getParentType();
138
+ var fieldDef;
139
+ var fieldType;
135
140
 
136
- if (parentType) {
137
- fieldDef = this._getFieldDef(schema, parentType, node);
141
+ if (parentType) {
142
+ fieldDef = this._getFieldDef(schema, parentType, node);
138
143
 
139
- if (fieldDef) {
140
- fieldType = fieldDef.type;
144
+ if (fieldDef) {
145
+ fieldType = fieldDef.type;
146
+ }
141
147
  }
142
- }
143
148
 
144
- this._fieldDefStack.push(fieldDef);
149
+ this._fieldDefStack.push(fieldDef);
145
150
 
146
- this._typeStack.push((0, _definition.isOutputType)(fieldType) ? fieldType : undefined);
151
+ this._typeStack.push((0, _definition.isOutputType)(fieldType) ? fieldType : undefined);
147
152
 
148
- break;
153
+ break;
154
+ }
149
155
 
150
156
  case _kinds.Kind.DIRECTIVE:
151
157
  this._directive = schema.getDirective(node.name.value);
152
158
  break;
153
159
 
154
160
  case _kinds.Kind.OPERATION_DEFINITION:
155
- var type;
156
-
157
- if (node.operation === 'query') {
158
- type = schema.getQueryType();
159
- } else if (node.operation === 'mutation') {
160
- type = schema.getMutationType();
161
- } else if (node.operation === 'subscription') {
162
- type = schema.getSubscriptionType();
163
- }
161
+ {
162
+ var type;
163
+
164
+ if (node.operation === 'query') {
165
+ type = schema.getQueryType();
166
+ } else if (node.operation === 'mutation') {
167
+ type = schema.getMutationType();
168
+ } else if (node.operation === 'subscription') {
169
+ type = schema.getSubscriptionType();
170
+ }
164
171
 
165
- this._typeStack.push((0, _definition.isObjectType)(type) ? type : undefined);
172
+ this._typeStack.push((0, _definition.isObjectType)(type) ? type : undefined);
166
173
 
167
- break;
174
+ break;
175
+ }
168
176
 
169
177
  case _kinds.Kind.INLINE_FRAGMENT:
170
178
  case _kinds.Kind.FRAGMENT_DEFINITION:
171
- var typeConditionAST = node.typeCondition;
172
- var outputType = typeConditionAST ? (0, _typeFromAST.typeFromAST)(schema, typeConditionAST) : (0, _definition.getNamedType)(this.getType());
179
+ {
180
+ var typeConditionAST = node.typeCondition;
181
+ var outputType = typeConditionAST ? (0, _typeFromAST.typeFromAST)(schema, typeConditionAST) : (0, _definition.getNamedType)(this.getType());
173
182
 
174
- this._typeStack.push((0, _definition.isOutputType)(outputType) ? outputType : undefined);
183
+ this._typeStack.push((0, _definition.isOutputType)(outputType) ? outputType : undefined);
175
184
 
176
- break;
185
+ break;
186
+ }
177
187
 
178
188
  case _kinds.Kind.VARIABLE_DEFINITION:
179
- var inputType = (0, _typeFromAST.typeFromAST)(schema, node.type);
189
+ {
190
+ var inputType = (0, _typeFromAST.typeFromAST)(schema, node.type);
180
191
 
181
- this._inputTypeStack.push((0, _definition.isInputType)(inputType) ? inputType : undefined);
192
+ this._inputTypeStack.push((0, _definition.isInputType)(inputType) ? inputType : undefined);
182
193
 
183
- break;
194
+ break;
195
+ }
184
196
 
185
197
  case _kinds.Kind.ARGUMENT:
186
- var argDef;
187
- var argType;
188
- var fieldOrDirective = this.getDirective() || this.getFieldDef();
189
-
190
- if (fieldOrDirective) {
191
- argDef = (0, _find.default)(fieldOrDirective.args, function (arg) {
192
- return arg.name === node.name.value;
193
- });
194
-
195
- if (argDef) {
196
- argType = argDef.type;
198
+ {
199
+ var argDef;
200
+ var argType;
201
+ var fieldOrDirective = this.getDirective() || this.getFieldDef();
202
+
203
+ if (fieldOrDirective) {
204
+ argDef = (0, _find.default)(fieldOrDirective.args, function (arg) {
205
+ return arg.name === node.name.value;
206
+ });
207
+
208
+ if (argDef) {
209
+ argType = argDef.type;
210
+ }
197
211
  }
198
- }
199
212
 
200
- this._argument = argDef;
213
+ this._argument = argDef;
201
214
 
202
- this._defaultValueStack.push(argDef ? argDef.defaultValue : undefined);
215
+ this._defaultValueStack.push(argDef ? argDef.defaultValue : undefined);
203
216
 
204
- this._inputTypeStack.push((0, _definition.isInputType)(argType) ? argType : undefined);
217
+ this._inputTypeStack.push((0, _definition.isInputType)(argType) ? argType : undefined);
205
218
 
206
- break;
219
+ break;
220
+ }
207
221
 
208
222
  case _kinds.Kind.LIST:
209
- var listType = (0, _definition.getNullableType)(this.getInputType());
210
- var itemType = (0, _definition.isListType)(listType) ? listType.ofType : listType; // List positions never have a default value.
223
+ {
224
+ var listType = (0, _definition.getNullableType)(this.getInputType());
225
+ var itemType = (0, _definition.isListType)(listType) ? listType.ofType : listType; // List positions never have a default value.
211
226
 
212
- this._defaultValueStack.push(undefined);
227
+ this._defaultValueStack.push(undefined);
213
228
 
214
- this._inputTypeStack.push((0, _definition.isInputType)(itemType) ? itemType : undefined);
229
+ this._inputTypeStack.push((0, _definition.isInputType)(itemType) ? itemType : undefined);
215
230
 
216
- break;
231
+ break;
232
+ }
217
233
 
218
234
  case _kinds.Kind.OBJECT_FIELD:
219
- var objectType = (0, _definition.getNamedType)(this.getInputType());
220
- var inputFieldType;
221
- var inputField;
235
+ {
236
+ var objectType = (0, _definition.getNamedType)(this.getInputType());
237
+ var inputFieldType;
238
+ var inputField;
222
239
 
223
- if ((0, _definition.isInputObjectType)(objectType)) {
224
- inputField = objectType.getFields()[node.name.value];
240
+ if ((0, _definition.isInputObjectType)(objectType)) {
241
+ inputField = objectType.getFields()[node.name.value];
225
242
 
226
- if (inputField) {
227
- inputFieldType = inputField.type;
243
+ if (inputField) {
244
+ inputFieldType = inputField.type;
245
+ }
228
246
  }
229
- }
230
247
 
231
- this._defaultValueStack.push(inputField ? inputField.defaultValue : undefined);
248
+ this._defaultValueStack.push(inputField ? inputField.defaultValue : undefined);
232
249
 
233
- this._inputTypeStack.push((0, _definition.isInputType)(inputFieldType) ? inputFieldType : undefined);
250
+ this._inputTypeStack.push((0, _definition.isInputType)(inputFieldType) ? inputFieldType : undefined);
234
251
 
235
- break;
252
+ break;
253
+ }
236
254
 
237
255
  case _kinds.Kind.ENUM:
238
- var enumType = (0, _definition.getNamedType)(this.getInputType());
239
- var enumValue;
256
+ {
257
+ var enumType = (0, _definition.getNamedType)(this.getInputType());
258
+ var enumValue;
240
259
 
241
- if ((0, _definition.isEnumType)(enumType)) {
242
- enumValue = enumType.getValue(node.value);
243
- }
260
+ if ((0, _definition.isEnumType)(enumType)) {
261
+ enumValue = enumType.getValue(node.value);
262
+ }
244
263
 
245
- this._enumValue = enumValue;
246
- break;
264
+ this._enumValue = enumValue;
265
+ break;
266
+ }
247
267
  }
248
268
  };
249
269
 
@@ -329,4 +349,4 @@ function getFieldDef(schema, parentType, fieldNode) {
329
349
  if ((0, _definition.isObjectType)(parentType) || (0, _definition.isInterfaceType)(parentType)) {
330
350
  return parentType.getFields()[name];
331
351
  }
332
- }
352
+ }
@@ -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.
@@ -10,6 +10,14 @@
10
10
  import find from '../polyfills/find';
11
11
  import { Kind } from '../language/kinds';
12
12
  import {
13
+ type GraphQLType,
14
+ type GraphQLInputType,
15
+ type GraphQLOutputType,
16
+ type GraphQLCompositeType,
17
+ type GraphQLField,
18
+ type GraphQLArgument,
19
+ type GraphQLInputField,
20
+ type GraphQLEnumValue,
13
21
  isObjectType,
14
22
  isInterfaceType,
15
23
  isEnumType,
@@ -21,24 +29,14 @@ import {
21
29
  getNullableType,
22
30
  getNamedType,
23
31
  } from '../type/definition';
24
- import type {
25
- GraphQLType,
26
- GraphQLInputType,
27
- GraphQLOutputType,
28
- GraphQLCompositeType,
29
- GraphQLField,
30
- GraphQLArgument,
31
- GraphQLInputField,
32
- GraphQLEnumValue,
33
- } from '../type/definition';
34
- import type { GraphQLDirective } from '../type/directives';
32
+ import { type GraphQLDirective } from '../type/directives';
35
33
  import {
36
34
  SchemaMetaFieldDef,
37
35
  TypeMetaFieldDef,
38
36
  TypeNameMetaFieldDef,
39
37
  } from '../type/introspection';
40
- import type { GraphQLSchema } from '../type/schema';
41
- import type { ASTNode, FieldNode } from '../language/ast';
38
+ import { type GraphQLSchema } from '../type/schema';
39
+ import { type ASTNode, type FieldNode } from '../language/ast';
42
40
  import { typeFromAST } from './typeFromAST';
43
41
 
44
42
  /**
@@ -146,13 +144,14 @@ export class TypeInfo {
146
144
  // checked before continuing since TypeInfo is used as part of validation
147
145
  // which occurs before guarantees of schema and document validity.
148
146
  switch (node.kind) {
149
- case Kind.SELECTION_SET:
147
+ case Kind.SELECTION_SET: {
150
148
  const namedType: mixed = getNamedType(this.getType());
151
149
  this._parentTypeStack.push(
152
150
  isCompositeType(namedType) ? namedType : undefined,
153
151
  );
154
152
  break;
155
- case Kind.FIELD:
153
+ }
154
+ case Kind.FIELD: {
156
155
  const parentType = this.getParentType();
157
156
  let fieldDef;
158
157
  let fieldType: mixed;
@@ -165,10 +164,11 @@ export class TypeInfo {
165
164
  this._fieldDefStack.push(fieldDef);
166
165
  this._typeStack.push(isOutputType(fieldType) ? fieldType : undefined);
167
166
  break;
167
+ }
168
168
  case Kind.DIRECTIVE:
169
169
  this._directive = schema.getDirective(node.name.value);
170
170
  break;
171
- case Kind.OPERATION_DEFINITION:
171
+ case Kind.OPERATION_DEFINITION: {
172
172
  let type: mixed;
173
173
  if (node.operation === 'query') {
174
174
  type = schema.getQueryType();
@@ -179,21 +179,24 @@ export class TypeInfo {
179
179
  }
180
180
  this._typeStack.push(isObjectType(type) ? type : undefined);
181
181
  break;
182
+ }
182
183
  case Kind.INLINE_FRAGMENT:
183
- case Kind.FRAGMENT_DEFINITION:
184
+ case Kind.FRAGMENT_DEFINITION: {
184
185
  const typeConditionAST = node.typeCondition;
185
186
  const outputType: mixed = typeConditionAST
186
187
  ? typeFromAST(schema, typeConditionAST)
187
188
  : getNamedType(this.getType());
188
189
  this._typeStack.push(isOutputType(outputType) ? outputType : undefined);
189
190
  break;
190
- case Kind.VARIABLE_DEFINITION:
191
+ }
192
+ case Kind.VARIABLE_DEFINITION: {
191
193
  const inputType: mixed = typeFromAST(schema, node.type);
192
194
  this._inputTypeStack.push(
193
195
  isInputType(inputType) ? inputType : undefined,
194
196
  );
195
197
  break;
196
- case Kind.ARGUMENT:
198
+ }
199
+ case Kind.ARGUMENT: {
197
200
  let argDef;
198
201
  let argType: mixed;
199
202
  const fieldOrDirective = this.getDirective() || this.getFieldDef();
@@ -210,7 +213,8 @@ export class TypeInfo {
210
213
  this._defaultValueStack.push(argDef ? argDef.defaultValue : undefined);
211
214
  this._inputTypeStack.push(isInputType(argType) ? argType : undefined);
212
215
  break;
213
- case Kind.LIST:
216
+ }
217
+ case Kind.LIST: {
214
218
  const listType: mixed = getNullableType(this.getInputType());
215
219
  const itemType: mixed = isListType(listType)
216
220
  ? listType.ofType
@@ -219,7 +223,8 @@ export class TypeInfo {
219
223
  this._defaultValueStack.push(undefined);
220
224
  this._inputTypeStack.push(isInputType(itemType) ? itemType : undefined);
221
225
  break;
222
- case Kind.OBJECT_FIELD:
226
+ }
227
+ case Kind.OBJECT_FIELD: {
223
228
  const objectType: mixed = getNamedType(this.getInputType());
224
229
  let inputFieldType: GraphQLInputType | void;
225
230
  let inputField: GraphQLInputField | void;
@@ -236,7 +241,8 @@ export class TypeInfo {
236
241
  isInputType(inputFieldType) ? inputFieldType : undefined,
237
242
  );
238
243
  break;
239
- case Kind.ENUM:
244
+ }
245
+ case Kind.ENUM: {
240
246
  const enumType: mixed = getNamedType(this.getInputType());
241
247
  let enumValue;
242
248
  if (isEnumType(enumType)) {
@@ -244,6 +250,7 @@ export class TypeInfo {
244
250
  }
245
251
  this._enumValue = enumValue;
246
252
  break;
253
+ }
247
254
  }
248
255
  }
249
256