graphql 14.0.2 → 14.2.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 (361) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +5 -5
  3. package/codecov.yml +14 -0
  4. package/error/GraphQLError.js +2 -2
  5. package/error/GraphQLError.js.flow +4 -4
  6. package/error/GraphQLError.mjs +2 -2
  7. package/error/formatError.js +2 -2
  8. package/error/formatError.js.flow +1 -1
  9. package/error/formatError.mjs +2 -2
  10. package/error/index.js.flow +1 -1
  11. package/error/index.mjs +2 -2
  12. package/error/locatedError.js +2 -2
  13. package/error/locatedError.js.flow +1 -1
  14. package/error/locatedError.mjs +2 -2
  15. package/error/printError.js +2 -2
  16. package/error/printError.js.flow +1 -1
  17. package/error/printError.mjs +2 -2
  18. package/error/syntaxError.js +2 -2
  19. package/error/syntaxError.js.flow +1 -1
  20. package/error/syntaxError.mjs +2 -2
  21. package/execution/execute.js +20 -11
  22. package/execution/execute.js.flow +41 -27
  23. package/execution/execute.mjs +19 -13
  24. package/execution/index.js +6 -0
  25. package/execution/index.js.flow +7 -2
  26. package/execution/index.mjs +3 -3
  27. package/execution/values.js +10 -10
  28. package/execution/values.js.flow +8 -8
  29. package/execution/values.mjs +9 -9
  30. package/graphql.js +8 -8
  31. package/graphql.js.flow +18 -4
  32. package/graphql.mjs +8 -8
  33. package/index.js +18 -0
  34. package/index.js.flow +4 -1
  35. package/index.mjs +4 -4
  36. package/jsutils/ObjMap.js.flow +1 -1
  37. package/jsutils/{MaybePromise.js → PromiseOrValue.js} +0 -0
  38. package/jsutils/{MaybePromise.js.flow → PromiseOrValue.js.flow} +2 -2
  39. package/jsutils/{MaybePromise.mjs → PromiseOrValue.mjs} +0 -0
  40. package/jsutils/dedent.js +2 -2
  41. package/jsutils/dedent.js.flow +1 -1
  42. package/jsutils/dedent.mjs +2 -2
  43. package/jsutils/defineToJSON.js +18 -7
  44. package/jsutils/defineToJSON.js.flow +15 -6
  45. package/jsutils/defineToJSON.mjs +15 -7
  46. package/jsutils/defineToStringTag.js +6 -6
  47. package/jsutils/defineToStringTag.js.flow +4 -4
  48. package/jsutils/defineToStringTag.mjs +5 -5
  49. package/jsutils/inspect.js +109 -23
  50. package/jsutils/inspect.js.flow +112 -14
  51. package/jsutils/inspect.mjs +108 -17
  52. package/jsutils/instanceOf.js +2 -2
  53. package/jsutils/instanceOf.js.flow +1 -1
  54. package/jsutils/instanceOf.mjs +2 -2
  55. package/jsutils/invariant.js +2 -2
  56. package/jsutils/invariant.js.flow +1 -1
  57. package/jsutils/invariant.mjs +2 -2
  58. package/jsutils/isInvalid.js +2 -2
  59. package/jsutils/isInvalid.js.flow +1 -1
  60. package/jsutils/isInvalid.mjs +2 -2
  61. package/jsutils/isNullish.js +2 -2
  62. package/jsutils/isNullish.js.flow +1 -1
  63. package/jsutils/isNullish.mjs +2 -2
  64. package/jsutils/isPromise.js +2 -2
  65. package/jsutils/isPromise.js.flow +1 -1
  66. package/jsutils/isPromise.mjs +2 -2
  67. package/jsutils/keyMap.js +2 -2
  68. package/jsutils/keyMap.js.flow +1 -1
  69. package/jsutils/keyMap.mjs +2 -2
  70. package/jsutils/keyValMap.js +2 -2
  71. package/jsutils/keyValMap.js.flow +1 -1
  72. package/jsutils/keyValMap.mjs +2 -2
  73. package/jsutils/mapValue.js +54 -0
  74. package/jsutils/mapValue.js.flow +27 -0
  75. package/jsutils/mapValue.mjs +44 -0
  76. package/jsutils/memoize3.js +2 -2
  77. package/jsutils/memoize3.js.flow +1 -1
  78. package/jsutils/memoize3.mjs +2 -2
  79. package/jsutils/nodejsCustomInspectSymbol.js +18 -0
  80. package/jsutils/nodejsCustomInspectSymbol.js.flow +15 -0
  81. package/jsutils/nodejsCustomInspectSymbol.mjs +10 -0
  82. package/jsutils/orList.js +18 -5
  83. package/jsutils/orList.js.flow +14 -8
  84. package/jsutils/orList.mjs +15 -5
  85. package/jsutils/promiseForObject.js +2 -2
  86. package/jsutils/promiseForObject.js.flow +1 -1
  87. package/jsutils/promiseForObject.mjs +2 -2
  88. package/jsutils/promiseReduce.js +2 -2
  89. package/jsutils/promiseReduce.js.flow +5 -5
  90. package/jsutils/promiseReduce.mjs +2 -2
  91. package/jsutils/quotedOrList.js +2 -2
  92. package/jsutils/quotedOrList.js.flow +1 -1
  93. package/jsutils/quotedOrList.mjs +2 -2
  94. package/jsutils/suggestionList.js +2 -2
  95. package/jsutils/suggestionList.js.flow +1 -1
  96. package/jsutils/suggestionList.mjs +2 -2
  97. package/language/ast.js.flow +1 -1
  98. package/language/{blockStringValue.mjs → blockString.js} +39 -3
  99. package/language/{blockStringValue.js.flow → blockString.js.flow} +31 -2
  100. package/language/{blockStringValue.js → blockString.mjs} +31 -10
  101. package/language/directiveLocation.js +2 -2
  102. package/language/directiveLocation.js.flow +1 -1
  103. package/language/directiveLocation.mjs +2 -2
  104. package/language/index.js.flow +1 -1
  105. package/language/index.mjs +2 -2
  106. package/language/kinds.js +2 -2
  107. package/language/kinds.js.flow +1 -1
  108. package/language/kinds.mjs +2 -2
  109. package/language/lexer.js +60 -46
  110. package/language/lexer.js.flow +71 -69
  111. package/language/lexer.mjs +58 -45
  112. package/language/location.js +2 -2
  113. package/language/location.js.flow +1 -1
  114. package/language/location.mjs +2 -2
  115. package/language/parser.js +84 -83
  116. package/language/parser.js.flow +85 -94
  117. package/language/parser.mjs +83 -83
  118. package/language/predicates.js +2 -2
  119. package/language/predicates.js.flow +1 -1
  120. package/language/predicates.mjs +2 -2
  121. package/language/printer.js +15 -17
  122. package/language/printer.js.flow +21 -20
  123. package/language/printer.mjs +14 -17
  124. package/language/source.js +8 -7
  125. package/language/source.js.flow +1 -1
  126. package/language/source.mjs +2 -10
  127. package/language/visitor.js +7 -6
  128. package/language/visitor.js.flow +3 -5
  129. package/language/visitor.mjs +7 -6
  130. package/package.json +5 -2
  131. package/polyfills/find.js +31 -0
  132. package/polyfills/find.js.flow +29 -0
  133. package/polyfills/find.mjs +23 -0
  134. package/polyfills/flatMap.js +38 -0
  135. package/polyfills/flatMap.js.flow +34 -0
  136. package/polyfills/flatMap.mjs +30 -0
  137. package/{jsutils → polyfills}/isFinite.js +2 -2
  138. package/{jsutils → polyfills}/isFinite.js.flow +1 -1
  139. package/{jsutils → polyfills}/isFinite.mjs +2 -2
  140. package/{jsutils → polyfills}/isInteger.js +2 -2
  141. package/{jsutils → polyfills}/isInteger.js.flow +1 -1
  142. package/{jsutils → polyfills}/isInteger.mjs +2 -2
  143. package/polyfills/objectEntries.js +26 -0
  144. package/polyfills/objectEntries.js.flow +19 -0
  145. package/polyfills/objectEntries.mjs +18 -0
  146. package/{jsutils → polyfills}/objectValues.js +2 -2
  147. package/{jsutils → polyfills}/objectValues.js.flow +2 -2
  148. package/{jsutils → polyfills}/objectValues.mjs +2 -2
  149. package/subscription/asyncIteratorReject.js.flow +1 -1
  150. package/subscription/asyncIteratorReject.mjs +2 -2
  151. package/subscription/index.js.flow +1 -1
  152. package/subscription/index.mjs +2 -2
  153. package/subscription/mapAsyncIterator.js.flow +5 -5
  154. package/subscription/mapAsyncIterator.mjs +2 -2
  155. package/subscription/subscribe.js +2 -2
  156. package/subscription/subscribe.js.flow +1 -1
  157. package/subscription/subscribe.mjs +2 -2
  158. package/type/definition.js +161 -138
  159. package/type/definition.js.flow +193 -57
  160. package/type/definition.mjs +158 -140
  161. package/type/directives.js +35 -29
  162. package/type/directives.js.flow +39 -21
  163. package/type/directives.mjs +34 -31
  164. package/type/index.js +12 -0
  165. package/type/index.js.flow +5 -1
  166. package/type/index.mjs +6 -4
  167. package/type/introspection.js +11 -7
  168. package/type/introspection.js.flow +11 -8
  169. package/type/introspection.mjs +11 -7
  170. package/type/scalars.js +45 -34
  171. package/type/scalars.js.flow +41 -27
  172. package/type/scalars.mjs +45 -27
  173. package/type/schema.js +134 -88
  174. package/type/schema.js.flow +77 -11
  175. package/type/schema.mjs +132 -88
  176. package/type/validate.js +152 -187
  177. package/type/validate.js.flow +12 -61
  178. package/type/validate.mjs +143 -188
  179. package/utilities/TypeInfo.js +10 -23
  180. package/utilities/TypeInfo.js.flow +2 -2
  181. package/utilities/TypeInfo.mjs +3 -25
  182. package/utilities/assertValidName.js +2 -2
  183. package/utilities/assertValidName.js.flow +1 -1
  184. package/utilities/assertValidName.mjs +2 -2
  185. package/utilities/astFromValue.js +7 -6
  186. package/utilities/astFromValue.js.flow +7 -6
  187. package/utilities/astFromValue.mjs +9 -8
  188. package/utilities/buildASTSchema.js +213 -197
  189. package/utilities/buildASTSchema.js.flow +163 -173
  190. package/utilities/buildASTSchema.mjs +203 -198
  191. package/utilities/buildClientSchema.js +39 -47
  192. package/utilities/buildClientSchema.js.flow +49 -58
  193. package/utilities/buildClientSchema.mjs +38 -46
  194. package/utilities/coerceValue.js +41 -21
  195. package/utilities/coerceValue.js.flow +44 -49
  196. package/utilities/coerceValue.mjs +42 -23
  197. package/utilities/concatAST.js +9 -13
  198. package/utilities/concatAST.js.flow +3 -9
  199. package/utilities/concatAST.mjs +6 -13
  200. package/utilities/extendSchema.js +256 -630
  201. package/utilities/extendSchema.js.flow +190 -426
  202. package/utilities/extendSchema.mjs +256 -631
  203. package/utilities/findBreakingChanges.js +8 -6
  204. package/utilities/findBreakingChanges.js.flow +4 -3
  205. package/utilities/findBreakingChanges.mjs +7 -6
  206. package/utilities/findDeprecatedUsages.js +4 -4
  207. package/utilities/findDeprecatedUsages.js.flow +3 -3
  208. package/utilities/findDeprecatedUsages.mjs +4 -4
  209. package/utilities/getOperationAST.js +2 -2
  210. package/utilities/getOperationAST.js.flow +1 -1
  211. package/utilities/getOperationAST.mjs +2 -2
  212. package/utilities/getOperationRootType.js +6 -6
  213. package/utilities/getOperationRootType.js.flow +9 -7
  214. package/utilities/getOperationRootType.mjs +6 -6
  215. package/utilities/index.js.flow +1 -1
  216. package/utilities/index.mjs +2 -2
  217. package/utilities/introspectionFromSchema.js +2 -2
  218. package/utilities/introspectionFromSchema.js.flow +1 -1
  219. package/utilities/introspectionFromSchema.mjs +2 -2
  220. package/utilities/introspectionQuery.js +2 -2
  221. package/utilities/introspectionQuery.js.flow +1 -1
  222. package/utilities/introspectionQuery.mjs +2 -2
  223. package/utilities/isValidJSValue.js +4 -2
  224. package/utilities/isValidJSValue.js.flow +2 -1
  225. package/utilities/isValidJSValue.mjs +4 -2
  226. package/utilities/isValidLiteralValue.js +2 -2
  227. package/utilities/isValidLiteralValue.js.flow +1 -1
  228. package/utilities/isValidLiteralValue.mjs +2 -2
  229. package/utilities/lexicographicSortSchema.js +86 -124
  230. package/utilities/lexicographicSortSchema.js.flow +68 -96
  231. package/utilities/lexicographicSortSchema.mjs +86 -124
  232. package/utilities/schemaPrinter.js +47 -73
  233. package/utilities/schemaPrinter.js.flow +62 -111
  234. package/utilities/schemaPrinter.mjs +46 -73
  235. package/utilities/separateOperations.js +11 -10
  236. package/utilities/separateOperations.js.flow +1 -1
  237. package/utilities/separateOperations.mjs +11 -10
  238. package/utilities/typeComparators.js +2 -2
  239. package/utilities/typeComparators.js.flow +1 -1
  240. package/utilities/typeComparators.mjs +2 -2
  241. package/utilities/typeFromAST.js +9 -4
  242. package/utilities/typeFromAST.js.flow +5 -2
  243. package/utilities/typeFromAST.mjs +6 -4
  244. package/utilities/valueFromAST.js +9 -6
  245. package/utilities/valueFromAST.js.flow +5 -3
  246. package/utilities/valueFromAST.mjs +7 -5
  247. package/utilities/valueFromASTUntyped.js +7 -4
  248. package/utilities/valueFromASTUntyped.js.flow +5 -2
  249. package/utilities/valueFromASTUntyped.mjs +6 -4
  250. package/validation/ValidationContext.js +57 -82
  251. package/validation/ValidationContext.js.flow +53 -50
  252. package/validation/ValidationContext.mjs +53 -78
  253. package/validation/index.js.flow +1 -1
  254. package/validation/index.mjs +2 -2
  255. package/validation/rules/ExecutableDefinitions.js +3 -3
  256. package/validation/rules/ExecutableDefinitions.js.flow +3 -3
  257. package/validation/rules/ExecutableDefinitions.mjs +3 -3
  258. package/validation/rules/FieldsOnCorrectType.js +3 -3
  259. package/validation/rules/FieldsOnCorrectType.js.flow +2 -2
  260. package/validation/rules/FieldsOnCorrectType.mjs +3 -3
  261. package/validation/rules/FragmentsOnCompositeTypes.js +4 -4
  262. package/validation/rules/FragmentsOnCompositeTypes.js.flow +3 -3
  263. package/validation/rules/FragmentsOnCompositeTypes.mjs +4 -4
  264. package/validation/rules/KnownArgumentNames.js.flow +1 -1
  265. package/validation/rules/KnownArgumentNames.mjs +2 -2
  266. package/validation/rules/KnownDirectives.js +4 -4
  267. package/validation/rules/KnownDirectives.js.flow +5 -4
  268. package/validation/rules/KnownDirectives.mjs +4 -4
  269. package/validation/rules/KnownFragmentNames.js +3 -3
  270. package/validation/rules/KnownFragmentNames.js.flow +2 -2
  271. package/validation/rules/KnownFragmentNames.mjs +3 -3
  272. package/validation/rules/KnownTypeNames.js +60 -22
  273. package/validation/rules/KnownTypeNames.js.flow +55 -21
  274. package/validation/rules/KnownTypeNames.mjs +57 -22
  275. package/validation/rules/LoneAnonymousOperation.js +3 -3
  276. package/validation/rules/LoneAnonymousOperation.js.flow +2 -2
  277. package/validation/rules/LoneAnonymousOperation.mjs +3 -3
  278. package/validation/rules/LoneSchemaDefinition.js +2 -2
  279. package/validation/rules/LoneSchemaDefinition.js.flow +1 -1
  280. package/validation/rules/LoneSchemaDefinition.mjs +2 -2
  281. package/validation/rules/NoFragmentCycles.js +2 -2
  282. package/validation/rules/NoFragmentCycles.js.flow +3 -3
  283. package/validation/rules/NoFragmentCycles.mjs +2 -2
  284. package/validation/rules/NoUndefinedVariables.js +2 -2
  285. package/validation/rules/NoUndefinedVariables.js.flow +1 -1
  286. package/validation/rules/NoUndefinedVariables.mjs +2 -2
  287. package/validation/rules/NoUnusedFragments.js +10 -7
  288. package/validation/rules/NoUnusedFragments.js.flow +4 -4
  289. package/validation/rules/NoUnusedFragments.mjs +10 -7
  290. package/validation/rules/NoUnusedVariables.js +7 -5
  291. package/validation/rules/NoUnusedVariables.js.flow +4 -3
  292. package/validation/rules/NoUnusedVariables.mjs +7 -5
  293. package/validation/rules/OverlappingFieldsCanBeMerged.js +58 -33
  294. package/validation/rules/OverlappingFieldsCanBeMerged.js.flow +4 -4
  295. package/validation/rules/OverlappingFieldsCanBeMerged.mjs +50 -34
  296. package/validation/rules/PossibleFragmentSpreads.js +4 -4
  297. package/validation/rules/PossibleFragmentSpreads.js.flow +3 -3
  298. package/validation/rules/PossibleFragmentSpreads.mjs +4 -4
  299. package/validation/rules/PossibleTypeExtensions.js +158 -0
  300. package/validation/rules/PossibleTypeExtensions.js.flow +160 -0
  301. package/validation/rules/PossibleTypeExtensions.mjs +146 -0
  302. package/validation/rules/ProvidedRequiredArguments.js +3 -3
  303. package/validation/rules/ProvidedRequiredArguments.js.flow +4 -4
  304. package/validation/rules/ProvidedRequiredArguments.mjs +5 -5
  305. package/validation/rules/ScalarLeafs.js +4 -4
  306. package/validation/rules/ScalarLeafs.js.flow +3 -3
  307. package/validation/rules/ScalarLeafs.mjs +4 -4
  308. package/validation/rules/SingleFieldSubscriptions.js +2 -2
  309. package/validation/rules/SingleFieldSubscriptions.js.flow +1 -1
  310. package/validation/rules/SingleFieldSubscriptions.mjs +2 -2
  311. package/validation/rules/UniqueArgumentNames.js +2 -2
  312. package/validation/rules/UniqueArgumentNames.js.flow +1 -1
  313. package/validation/rules/UniqueArgumentNames.mjs +2 -2
  314. package/validation/rules/UniqueDirectiveNames.js +55 -0
  315. package/validation/rules/UniqueDirectiveNames.js.flow +64 -0
  316. package/validation/rules/UniqueDirectiveNames.mjs +43 -0
  317. package/validation/rules/UniqueDirectivesPerLocation.js +2 -2
  318. package/validation/rules/UniqueDirectivesPerLocation.js.flow +1 -1
  319. package/validation/rules/UniqueDirectivesPerLocation.mjs +2 -2
  320. package/validation/rules/UniqueEnumValueNames.js +90 -0
  321. package/validation/rules/UniqueEnumValueNames.js.flow +85 -0
  322. package/validation/rules/UniqueEnumValueNames.mjs +77 -0
  323. package/validation/rules/UniqueFieldDefinitionNames.js +101 -0
  324. package/validation/rules/UniqueFieldDefinitionNames.js.flow +99 -0
  325. package/validation/rules/UniqueFieldDefinitionNames.mjs +88 -0
  326. package/validation/rules/UniqueFragmentNames.js +2 -2
  327. package/validation/rules/UniqueFragmentNames.js.flow +1 -1
  328. package/validation/rules/UniqueFragmentNames.mjs +2 -2
  329. package/validation/rules/UniqueInputFieldNames.js +2 -4
  330. package/validation/rules/UniqueInputFieldNames.js.flow +1 -2
  331. package/validation/rules/UniqueInputFieldNames.mjs +2 -4
  332. package/validation/rules/UniqueOperationNames.js +2 -2
  333. package/validation/rules/UniqueOperationNames.js.flow +1 -1
  334. package/validation/rules/UniqueOperationNames.mjs +2 -2
  335. package/validation/rules/UniqueOperationTypes.js +85 -0
  336. package/validation/rules/UniqueOperationTypes.js.flow +76 -0
  337. package/validation/rules/UniqueOperationTypes.mjs +73 -0
  338. package/validation/rules/UniqueTypeNames.js +62 -0
  339. package/validation/rules/UniqueTypeNames.js.flow +67 -0
  340. package/validation/rules/UniqueTypeNames.mjs +50 -0
  341. package/validation/rules/UniqueVariableNames.js +2 -2
  342. package/validation/rules/UniqueVariableNames.js.flow +1 -1
  343. package/validation/rules/UniqueVariableNames.mjs +2 -2
  344. package/validation/rules/ValuesOfCorrectType.js +30 -14
  345. package/validation/rules/ValuesOfCorrectType.js.flow +5 -6
  346. package/validation/rules/ValuesOfCorrectType.mjs +29 -14
  347. package/validation/rules/VariablesAreInputTypes.js +3 -3
  348. package/validation/rules/VariablesAreInputTypes.js.flow +2 -2
  349. package/validation/rules/VariablesAreInputTypes.mjs +3 -3
  350. package/validation/rules/VariablesInAllowedPosition.js +5 -5
  351. package/validation/rules/VariablesInAllowedPosition.js.flow +1 -1
  352. package/validation/rules/VariablesInAllowedPosition.mjs +5 -5
  353. package/validation/specifiedRules.js +15 -3
  354. package/validation/specifiedRules.js.flow +14 -1
  355. package/validation/specifiedRules.mjs +9 -3
  356. package/validation/validate.js +2 -2
  357. package/validation/validate.js.flow +1 -1
  358. package/validation/validate.mjs +2 -2
  359. package/jsutils/find.js +0 -22
  360. package/jsutils/find.js.flow +0 -19
  361. package/jsutils/find.mjs +0 -15
@@ -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,11 +7,12 @@
7
7
  * @flow strict
8
8
  */
9
9
 
10
- import isNullish from '../jsutils/isNullish';
11
- import isInvalid from '../jsutils/isInvalid';
12
- import objectValues from '../jsutils/objectValues';
10
+ import flatMap from '../polyfills/flatMap';
11
+ import objectValues from '../polyfills/objectValues';
12
+ import inspect from '../jsutils/inspect';
13
13
  import { astFromValue } from '../utilities/astFromValue';
14
14
  import { print } from '../language/printer';
15
+ import { printBlockString } from '../language/blockString';
15
16
  import type { GraphQLSchema } from '../type/schema';
16
17
  import {
17
18
  isScalarType,
@@ -175,8 +176,10 @@ export function printType(type: GraphQLNamedType, options?: Options): string {
175
176
  } else if (isInputObjectType(type)) {
176
177
  return printInputObject(type, options);
177
178
  }
179
+
180
+ // Not reachable. All possible types have been considered.
178
181
  /* istanbul ignore next */
179
- throw new Error(`Unknown type: ${(type: empty)}.`);
182
+ throw new Error(`Unexpected type: "${inspect((type: empty))}".`);
180
183
  }
181
184
 
182
185
  function printScalar(type: GraphQLScalarType, options): string {
@@ -190,82 +193,67 @@ function printObject(type: GraphQLObjectType, options): string {
190
193
  : '';
191
194
  return (
192
195
  printDescription(options, type) +
193
- `type ${type.name}${implementedInterfaces} {\n` +
194
- printFields(options, type) +
195
- '\n' +
196
- '}'
196
+ `type ${type.name}${implementedInterfaces}` +
197
+ printFields(options, type)
197
198
  );
198
199
  }
199
200
 
200
201
  function printInterface(type: GraphQLInterfaceType, options): string {
201
202
  return (
202
203
  printDescription(options, type) +
203
- `interface ${type.name} {\n` +
204
- printFields(options, type) +
205
- '\n' +
206
- '}'
204
+ `interface ${type.name}` +
205
+ printFields(options, type)
207
206
  );
208
207
  }
209
208
 
210
209
  function printUnion(type: GraphQLUnionType, options): string {
211
- return (
212
- printDescription(options, type) +
213
- `union ${type.name} = ${type.getTypes().join(' | ')}`
214
- );
210
+ const types = type.getTypes();
211
+ const possibleTypes = types.length ? ' = ' + types.join(' | ') : '';
212
+ return printDescription(options, type) + 'union ' + type.name + possibleTypes;
215
213
  }
216
214
 
217
215
  function printEnum(type: GraphQLEnumType, options): string {
218
- return (
219
- printDescription(options, type) +
220
- `enum ${type.name} {\n` +
221
- printEnumValues(type.getValues(), options) +
222
- '\n' +
223
- '}'
224
- );
225
- }
226
-
227
- function printEnumValues(values, options): string {
228
- return values
216
+ const values = type
217
+ .getValues()
229
218
  .map(
230
219
  (value, i) =>
231
220
  printDescription(options, value, ' ', !i) +
232
221
  ' ' +
233
222
  value.name +
234
223
  printDeprecated(value),
235
- )
236
- .join('\n');
224
+ );
225
+
226
+ return (
227
+ printDescription(options, type) + `enum ${type.name}` + printBlock(values)
228
+ );
237
229
  }
238
230
 
239
231
  function printInputObject(type: GraphQLInputObjectType, options): string {
240
- const fields = objectValues(type.getFields());
232
+ const fields = objectValues(type.getFields()).map(
233
+ (f, i) =>
234
+ printDescription(options, f, ' ', !i) + ' ' + printInputValue(f),
235
+ );
241
236
  return (
242
- printDescription(options, type) +
243
- `input ${type.name} {\n` +
244
- fields
245
- .map(
246
- (f, i) =>
247
- printDescription(options, f, ' ', !i) + ' ' + printInputValue(f),
248
- )
249
- .join('\n') +
250
- '\n' +
251
- '}'
237
+ printDescription(options, type) + `input ${type.name}` + printBlock(fields)
252
238
  );
253
239
  }
254
240
 
255
241
  function printFields(options, type) {
256
- const fields = objectValues(type.getFields());
257
- return fields
258
- .map(
259
- (f, i) =>
260
- printDescription(options, f, ' ', !i) +
261
- ' ' +
262
- f.name +
263
- printArgs(options, f.args, ' ') +
264
- ': ' +
265
- String(f.type) +
266
- printDeprecated(f),
267
- )
268
- .join('\n');
242
+ const fields = objectValues(type.getFields()).map(
243
+ (f, i) =>
244
+ printDescription(options, f, ' ', !i) +
245
+ ' ' +
246
+ f.name +
247
+ printArgs(options, f.args, ' ') +
248
+ ': ' +
249
+ String(f.type) +
250
+ printDeprecated(f),
251
+ );
252
+ return printBlock(fields);
253
+ }
254
+
255
+ function printBlock(items) {
256
+ return items.length !== 0 ? ' {\n' + items.join('\n') + '\n}' : '';
269
257
  }
270
258
 
271
259
  function printArgs(options, args, indentation = '') {
@@ -296,9 +284,10 @@ function printArgs(options, args, indentation = '') {
296
284
  }
297
285
 
298
286
  function printInputValue(arg) {
287
+ const defaultAST = astFromValue(arg.defaultValue, arg.type);
299
288
  let argDecl = arg.name + ': ' + String(arg.type);
300
- if (!isInvalid(arg.defaultValue)) {
301
- argDecl += ` = ${print(astFromValue(arg.defaultValue, arg.type))}`;
289
+ if (defaultAST) {
290
+ argDecl += ` = ${print(defaultAST)}`;
302
291
  }
303
292
  return argDecl;
304
293
  }
@@ -319,16 +308,11 @@ function printDeprecated(fieldOrEnumVal) {
319
308
  return '';
320
309
  }
321
310
  const reason = fieldOrEnumVal.deprecationReason;
322
- if (
323
- isNullish(reason) ||
324
- reason === '' ||
325
- reason === DEFAULT_DEPRECATION_REASON
326
- ) {
327
- return ' @deprecated';
311
+ const reasonAST = astFromValue(reason, GraphQLString);
312
+ if (reasonAST && reason !== '' && reason !== DEFAULT_DEPRECATION_REASON) {
313
+ return ' @deprecated(reason: ' + print(reasonAST) + ')';
328
314
  }
329
- return (
330
- ' @deprecated(reason: ' + print(astFromValue(reason, GraphQLString)) + ')'
331
- );
315
+ return ' @deprecated';
332
316
  }
333
317
 
334
318
  function printDescription(
@@ -346,37 +330,13 @@ function printDescription(
346
330
  return printDescriptionWithComments(lines, indentation, firstInBlock);
347
331
  }
348
332
 
349
- let description =
350
- indentation && !firstInBlock
351
- ? '\n' + indentation + '"""'
352
- : indentation + '"""';
353
-
354
- // In some circumstances, a single line can be used for the description.
355
- if (
356
- lines.length === 1 &&
357
- lines[0].length < 70 &&
358
- lines[0][lines[0].length - 1] !== '"'
359
- ) {
360
- return description + escapeQuote(lines[0]) + '"""\n';
361
- }
362
-
363
- // Format a multi-line block quote to account for leading space.
364
- const hasLeadingSpace = lines[0][0] === ' ' || lines[0][0] === '\t';
365
- if (!hasLeadingSpace) {
366
- description += '\n';
367
- }
368
- for (let i = 0; i < lines.length; i++) {
369
- if (i !== 0 || !hasLeadingSpace) {
370
- description += indentation;
371
- }
372
- description += escapeQuote(lines[i]) + '\n';
373
- }
374
- description += indentation + '"""\n';
375
- return description;
376
- }
333
+ const text = lines.join('\n');
334
+ const preferMultipleLines = text.length > 70;
335
+ const blockString = printBlockString(text, '', preferMultipleLines);
336
+ const prefix =
337
+ indentation && !firstInBlock ? '\n' + indentation : indentation;
377
338
 
378
- function escapeQuote(line) {
379
- return line.replace(/"""/g, '\\"""');
339
+ return prefix + blockString.replace(/\n/g, '\n' + indentation) + '\n';
380
340
  }
381
341
 
382
342
  function printDescriptionWithComments(lines, indentation, firstInBlock) {
@@ -392,27 +352,18 @@ function printDescriptionWithComments(lines, indentation, firstInBlock) {
392
352
  }
393
353
 
394
354
  function descriptionLines(description: string, maxLen: number): Array<string> {
395
- const lines = [];
396
355
  const rawLines = description.split('\n');
397
- for (let i = 0; i < rawLines.length; i++) {
398
- if (rawLines[i] === '') {
399
- lines.push(rawLines[i]);
400
- } else {
401
- // For > 120 character long lines, cut at space boundaries into sublines
402
- // of ~80 chars.
403
- const sublines = breakLine(rawLines[i], maxLen);
404
- for (let j = 0; j < sublines.length; j++) {
405
- lines.push(sublines[j]);
406
- }
356
+ return flatMap(rawLines, line => {
357
+ if (line.length < maxLen + 5) {
358
+ return line;
407
359
  }
408
- }
409
- return lines;
360
+ // For > 120 character long lines, cut at space boundaries into sublines
361
+ // of ~80 chars.
362
+ return breakLine(line, maxLen);
363
+ });
410
364
  }
411
365
 
412
366
  function breakLine(line: string, maxLen: number): Array<string> {
413
- if (line.length < maxLen + 5) {
414
- return [line];
415
- }
416
367
  const parts = line.split(new RegExp(`((?: |^).{15,${maxLen - 40}}(?= |$))`));
417
368
  if (parts.length < 4) {
418
369
  return [line];
@@ -1,16 +1,17 @@
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
- * strict
7
+ *
8
8
  */
9
- import isNullish from '../jsutils/isNullish';
10
- import isInvalid from '../jsutils/isInvalid';
11
- import objectValues from '../jsutils/objectValues';
9
+ import flatMap from '../polyfills/flatMap';
10
+ import objectValues from '../polyfills/objectValues';
11
+ import inspect from '../jsutils/inspect';
12
12
  import { astFromValue } from '../utilities/astFromValue';
13
13
  import { print } from '../language/printer';
14
+ import { printBlockString } from '../language/blockString';
14
15
  import { isScalarType, isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType } from '../type/definition';
15
16
  import { GraphQLString, isSpecifiedScalarType } from '../type/scalars';
16
17
  import { GraphQLDirective, DEFAULT_DEPRECATION_REASON, isSpecifiedDirective } from '../type/directives';
@@ -124,11 +125,12 @@ export function printType(type, options) {
124
125
  return printEnum(type, options);
125
126
  } else if (isInputObjectType(type)) {
126
127
  return printInputObject(type, options);
127
- }
128
+ } // Not reachable. All possible types have been considered.
129
+
128
130
  /* istanbul ignore next */
129
131
 
130
132
 
131
- throw new Error("Unknown type: ".concat(type, "."));
133
+ throw new Error("Unexpected type: \"".concat(inspect(type), "\"."));
132
134
  }
133
135
 
134
136
  function printScalar(type, options) {
@@ -140,39 +142,42 @@ function printObject(type, options) {
140
142
  var implementedInterfaces = interfaces.length ? ' implements ' + interfaces.map(function (i) {
141
143
  return i.name;
142
144
  }).join(' & ') : '';
143
- return printDescription(options, type) + "type ".concat(type.name).concat(implementedInterfaces, " {\n") + printFields(options, type) + '\n' + '}';
145
+ return printDescription(options, type) + "type ".concat(type.name).concat(implementedInterfaces) + printFields(options, type);
144
146
  }
145
147
 
146
148
  function printInterface(type, options) {
147
- return printDescription(options, type) + "interface ".concat(type.name, " {\n") + printFields(options, type) + '\n' + '}';
149
+ return printDescription(options, type) + "interface ".concat(type.name) + printFields(options, type);
148
150
  }
149
151
 
150
152
  function printUnion(type, options) {
151
- return printDescription(options, type) + "union ".concat(type.name, " = ").concat(type.getTypes().join(' | '));
153
+ var types = type.getTypes();
154
+ var possibleTypes = types.length ? ' = ' + types.join(' | ') : '';
155
+ return printDescription(options, type) + 'union ' + type.name + possibleTypes;
152
156
  }
153
157
 
154
158
  function printEnum(type, options) {
155
- return printDescription(options, type) + "enum ".concat(type.name, " {\n") + printEnumValues(type.getValues(), options) + '\n' + '}';
156
- }
157
-
158
- function printEnumValues(values, options) {
159
- return values.map(function (value, i) {
159
+ var values = type.getValues().map(function (value, i) {
160
160
  return printDescription(options, value, ' ', !i) + ' ' + value.name + printDeprecated(value);
161
- }).join('\n');
161
+ });
162
+ return printDescription(options, type) + "enum ".concat(type.name) + printBlock(values);
162
163
  }
163
164
 
164
165
  function printInputObject(type, options) {
165
- var fields = objectValues(type.getFields());
166
- return printDescription(options, type) + "input ".concat(type.name, " {\n") + fields.map(function (f, i) {
166
+ var fields = objectValues(type.getFields()).map(function (f, i) {
167
167
  return printDescription(options, f, ' ', !i) + ' ' + printInputValue(f);
168
- }).join('\n') + '\n' + '}';
168
+ });
169
+ return printDescription(options, type) + "input ".concat(type.name) + printBlock(fields);
169
170
  }
170
171
 
171
172
  function printFields(options, type) {
172
- var fields = objectValues(type.getFields());
173
- return fields.map(function (f, i) {
173
+ var fields = objectValues(type.getFields()).map(function (f, i) {
174
174
  return printDescription(options, f, ' ', !i) + ' ' + f.name + printArgs(options, f.args, ' ') + ': ' + String(f.type) + printDeprecated(f);
175
- }).join('\n');
175
+ });
176
+ return printBlock(fields);
177
+ }
178
+
179
+ function printBlock(items) {
180
+ return items.length !== 0 ? ' {\n' + items.join('\n') + '\n}' : '';
176
181
  }
177
182
 
178
183
  function printArgs(options, args) {
@@ -195,10 +200,11 @@ function printArgs(options, args) {
195
200
  }
196
201
 
197
202
  function printInputValue(arg) {
203
+ var defaultAST = astFromValue(arg.defaultValue, arg.type);
198
204
  var argDecl = arg.name + ': ' + String(arg.type);
199
205
 
200
- if (!isInvalid(arg.defaultValue)) {
201
- argDecl += " = ".concat(print(astFromValue(arg.defaultValue, arg.type)));
206
+ if (defaultAST) {
207
+ argDecl += " = ".concat(print(defaultAST));
202
208
  }
203
209
 
204
210
  return argDecl;
@@ -214,12 +220,13 @@ function printDeprecated(fieldOrEnumVal) {
214
220
  }
215
221
 
216
222
  var reason = fieldOrEnumVal.deprecationReason;
223
+ var reasonAST = astFromValue(reason, GraphQLString);
217
224
 
218
- if (isNullish(reason) || reason === '' || reason === DEFAULT_DEPRECATION_REASON) {
219
- return ' @deprecated';
225
+ if (reasonAST && reason !== '' && reason !== DEFAULT_DEPRECATION_REASON) {
226
+ return ' @deprecated(reason: ' + print(reasonAST) + ')';
220
227
  }
221
228
 
222
- return ' @deprecated(reason: ' + print(astFromValue(reason, GraphQLString)) + ')';
229
+ return ' @deprecated';
223
230
  }
224
231
 
225
232
  function printDescription(options, def) {
@@ -236,33 +243,11 @@ function printDescription(options, def) {
236
243
  return printDescriptionWithComments(lines, indentation, firstInBlock);
237
244
  }
238
245
 
239
- var description = indentation && !firstInBlock ? '\n' + indentation + '"""' : indentation + '"""'; // In some circumstances, a single line can be used for the description.
240
-
241
- if (lines.length === 1 && lines[0].length < 70 && lines[0][lines[0].length - 1] !== '"') {
242
- return description + escapeQuote(lines[0]) + '"""\n';
243
- } // Format a multi-line block quote to account for leading space.
244
-
245
-
246
- var hasLeadingSpace = lines[0][0] === ' ' || lines[0][0] === '\t';
247
-
248
- if (!hasLeadingSpace) {
249
- description += '\n';
250
- }
251
-
252
- for (var i = 0; i < lines.length; i++) {
253
- if (i !== 0 || !hasLeadingSpace) {
254
- description += indentation;
255
- }
256
-
257
- description += escapeQuote(lines[i]) + '\n';
258
- }
259
-
260
- description += indentation + '"""\n';
261
- return description;
262
- }
263
-
264
- function escapeQuote(line) {
265
- return line.replace(/"""/g, '\\"""');
246
+ var text = lines.join('\n');
247
+ var preferMultipleLines = text.length > 70;
248
+ var blockString = printBlockString(text, '', preferMultipleLines);
249
+ var prefix = indentation && !firstInBlock ? '\n' + indentation : indentation;
250
+ return prefix + blockString.replace(/\n/g, '\n' + indentation) + '\n';
266
251
  }
267
252
 
268
253
  function printDescriptionWithComments(lines, indentation, firstInBlock) {
@@ -280,31 +265,19 @@ function printDescriptionWithComments(lines, indentation, firstInBlock) {
280
265
  }
281
266
 
282
267
  function descriptionLines(description, maxLen) {
283
- var lines = [];
284
268
  var rawLines = description.split('\n');
269
+ return flatMap(rawLines, function (line) {
270
+ if (line.length < maxLen + 5) {
271
+ return line;
272
+ } // For > 120 character long lines, cut at space boundaries into sublines
273
+ // of ~80 chars.
285
274
 
286
- for (var i = 0; i < rawLines.length; i++) {
287
- if (rawLines[i] === '') {
288
- lines.push(rawLines[i]);
289
- } else {
290
- // For > 120 character long lines, cut at space boundaries into sublines
291
- // of ~80 chars.
292
- var sublines = breakLine(rawLines[i], maxLen);
293
275
 
294
- for (var j = 0; j < sublines.length; j++) {
295
- lines.push(sublines[j]);
296
- }
297
- }
298
- }
299
-
300
- return lines;
276
+ return breakLine(line, maxLen);
277
+ });
301
278
  }
302
279
 
303
280
  function breakLine(line, maxLen) {
304
- if (line.length < maxLen + 5) {
305
- return [line];
306
- }
307
-
308
281
  var parts = line.split(new RegExp("((?: |^).{15,".concat(maxLen - 40, "}(?= |$))")));
309
282
 
310
283
  if (parts.length < 4) {
@@ -8,12 +8,12 @@ exports.separateOperations = separateOperations;
8
8
  var _visitor = require("../language/visitor");
9
9
 
10
10
  /**
11
- * Copyright (c) 2015-present, Facebook, Inc.
11
+ * Copyright (c) Facebook, Inc. and its affiliates.
12
12
  *
13
13
  * This source code is licensed under the MIT license found in the
14
14
  * LICENSE file in the root directory of this source tree.
15
15
  *
16
- * strict
16
+ *
17
17
  */
18
18
 
19
19
  /**
@@ -49,9 +49,10 @@ function separateOperations(documentAST) {
49
49
  // is necessary for completing that operation.
50
50
 
51
51
  var separatedDocumentASTs = Object.create(null);
52
+ var _arr = operations;
52
53
 
53
- for (var _i = 0; _i < operations.length; _i++) {
54
- var operation = operations[_i];
54
+ for (var _i = 0; _i < _arr.length; _i++) {
55
+ var operation = _arr[_i];
55
56
  var operationName = opName(operation);
56
57
  var dependencies = Object.create(null);
57
58
  collectTransitiveDependencies(dependencies, depGraph, operationName); // The list of definition nodes to be included for this operation, sorted
@@ -59,10 +60,10 @@ function separateOperations(documentAST) {
59
60
 
60
61
  var definitions = [operation];
61
62
 
62
- var _arr = Object.keys(dependencies);
63
+ var _arr2 = Object.keys(dependencies);
63
64
 
64
- for (var _i2 = 0; _i2 < _arr.length; _i2++) {
65
- var name = _arr[_i2];
65
+ for (var _i2 = 0; _i2 < _arr2.length; _i2++) {
66
+ var name = _arr2[_i2];
66
67
  definitions.push(fragments[name]);
67
68
  }
68
69
 
@@ -89,10 +90,10 @@ function collectTransitiveDependencies(collected, depGraph, fromName) {
89
90
  var immediateDeps = depGraph[fromName];
90
91
 
91
92
  if (immediateDeps) {
92
- var _arr2 = Object.keys(immediateDeps);
93
+ var _arr3 = Object.keys(immediateDeps);
93
94
 
94
- for (var _i3 = 0; _i3 < _arr2.length; _i3++) {
95
- var toName = _arr2[_i3];
95
+ for (var _i3 = 0; _i3 < _arr3.length; _i3++) {
96
+ var toName = _arr3[_i3];
96
97
 
97
98
  if (!collected[toName]) {
98
99
  collected[toName] = true;
@@ -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.
@@ -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
- * strict
7
+ *
8
8
  */
9
9
  import { visit } from '../language/visitor';
10
10
 
@@ -41,9 +41,10 @@ export function separateOperations(documentAST) {
41
41
  // is necessary for completing that operation.
42
42
 
43
43
  var separatedDocumentASTs = Object.create(null);
44
+ var _arr = operations;
44
45
 
45
- for (var _i = 0; _i < operations.length; _i++) {
46
- var operation = operations[_i];
46
+ for (var _i = 0; _i < _arr.length; _i++) {
47
+ var operation = _arr[_i];
47
48
  var operationName = opName(operation);
48
49
  var dependencies = Object.create(null);
49
50
  collectTransitiveDependencies(dependencies, depGraph, operationName); // The list of definition nodes to be included for this operation, sorted
@@ -51,10 +52,10 @@ export function separateOperations(documentAST) {
51
52
 
52
53
  var definitions = [operation];
53
54
 
54
- var _arr = Object.keys(dependencies);
55
+ var _arr2 = Object.keys(dependencies);
55
56
 
56
- for (var _i2 = 0; _i2 < _arr.length; _i2++) {
57
- var name = _arr[_i2];
57
+ for (var _i2 = 0; _i2 < _arr2.length; _i2++) {
58
+ var name = _arr2[_i2];
58
59
  definitions.push(fragments[name]);
59
60
  }
60
61
 
@@ -81,10 +82,10 @@ function collectTransitiveDependencies(collected, depGraph, fromName) {
81
82
  var immediateDeps = depGraph[fromName];
82
83
 
83
84
  if (immediateDeps) {
84
- var _arr2 = Object.keys(immediateDeps);
85
+ var _arr3 = Object.keys(immediateDeps);
85
86
 
86
- for (var _i3 = 0; _i3 < _arr2.length; _i3++) {
87
- var toName = _arr2[_i3];
87
+ for (var _i3 = 0; _i3 < _arr3.length; _i3++) {
88
+ var toName = _arr3[_i3];
88
89
 
89
90
  if (!collected[toName]) {
90
91
  collected[toName] = true;
@@ -10,12 +10,12 @@ exports.doTypesOverlap = doTypesOverlap;
10
10
  var _definition = require("../type/definition");
11
11
 
12
12
  /**
13
- * Copyright (c) 2015-present, Facebook, Inc.
13
+ * Copyright (c) Facebook, Inc. and its affiliates.
14
14
  *
15
15
  * This source code is licensed under the MIT license found in the
16
16
  * LICENSE file in the root directory of this source tree.
17
17
  *
18
- * strict
18
+ *
19
19
  */
20
20
 
21
21
  /**
@@ -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.
@@ -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
- * strict
7
+ *
8
8
  */
9
9
  import { isObjectType, isListType, isNonNullType, isAbstractType } from '../type/definition';
10
10
 
@@ -5,17 +5,21 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.typeFromAST = typeFromAST;
7
7
 
8
+ var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
9
+
8
10
  var _kinds = require("../language/kinds");
9
11
 
10
12
  var _definition = require("../type/definition");
11
13
 
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
12
16
  /**
13
- * Copyright (c) 2015-present, Facebook, Inc.
17
+ * Copyright (c) Facebook, Inc. and its affiliates.
14
18
  *
15
19
  * This source code is licensed under the MIT license found in the
16
20
  * LICENSE file in the root directory of this source tree.
17
21
  *
18
- * strict
22
+ *
19
23
  */
20
24
  function typeFromAST(schema, typeNode) {
21
25
  /* eslint-enable no-redeclare */
@@ -33,9 +37,10 @@ function typeFromAST(schema, typeNode) {
33
37
 
34
38
  if (typeNode.kind === _kinds.Kind.NAMED_TYPE) {
35
39
  return schema.getType(typeNode.name.value);
36
- }
40
+ } // Not reachable. All possible type nodes have been considered.
41
+
37
42
  /* istanbul ignore next */
38
43
 
39
44
 
40
- throw new Error("Unexpected type kind: ".concat(typeNode.kind, "."));
45
+ throw new Error("Unexpected type node: \"".concat((0, _inspect.default)(typeNode), "\"."));
41
46
  }