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
@@ -12,15 +12,19 @@ var _suggestionList = _interopRequireDefault(require("../../jsutils/suggestionLi
12
12
 
13
13
  var _quotedOrList = _interopRequireDefault(require("../../jsutils/quotedOrList"));
14
14
 
15
+ var _predicates = require("../../language/predicates");
16
+
17
+ var _scalars = require("../../type/scalars");
18
+
15
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
20
 
17
21
  /**
18
- * Copyright (c) 2015-present, Facebook, Inc.
22
+ * Copyright (c) Facebook, Inc. and its affiliates.
19
23
  *
20
24
  * This source code is licensed under the MIT license found in the
21
25
  * LICENSE file in the root directory of this source tree.
22
26
  *
23
- * strict
27
+ *
24
28
  */
25
29
  function unknownTypeMessage(typeName, suggestedTypes) {
26
30
  var message = "Unknown type \"".concat(typeName, "\".");
@@ -40,30 +44,64 @@ function unknownTypeMessage(typeName, suggestedTypes) {
40
44
 
41
45
 
42
46
  function KnownTypeNames(context) {
47
+ var schema = context.getSchema();
48
+ var existingTypesMap = schema ? schema.getTypeMap() : Object.create(null);
49
+ var definedTypes = Object.create(null);
50
+ var _iteratorNormalCompletion = true;
51
+ var _didIteratorError = false;
52
+ var _iteratorError = undefined;
53
+
54
+ try {
55
+ for (var _iterator = context.getDocument().definitions[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
56
+ var def = _step.value;
57
+
58
+ if ((0, _predicates.isTypeDefinitionNode)(def)) {
59
+ definedTypes[def.name.value] = true;
60
+ }
61
+ }
62
+ } catch (err) {
63
+ _didIteratorError = true;
64
+ _iteratorError = err;
65
+ } finally {
66
+ try {
67
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
68
+ _iterator.return();
69
+ }
70
+ } finally {
71
+ if (_didIteratorError) {
72
+ throw _iteratorError;
73
+ }
74
+ }
75
+ }
76
+
77
+ var typeNames = Object.keys(existingTypesMap).concat(Object.keys(definedTypes));
43
78
  return {
44
- // TODO: when validating IDL, re-enable these. Experimental version does not
45
- // add unreferenced types, resulting in false-positive errors. Squelched
46
- // errors for now.
47
- ObjectTypeDefinition: function ObjectTypeDefinition() {
48
- return false;
49
- },
50
- InterfaceTypeDefinition: function InterfaceTypeDefinition() {
51
- return false;
52
- },
53
- UnionTypeDefinition: function UnionTypeDefinition() {
54
- return false;
55
- },
56
- InputObjectTypeDefinition: function InputObjectTypeDefinition() {
57
- return false;
58
- },
59
- NamedType: function NamedType(node) {
60
- var schema = context.getSchema();
79
+ NamedType: function NamedType(node, _1, parent, _2, ancestors) {
61
80
  var typeName = node.name.value;
62
- var type = schema.getType(typeName);
63
81
 
64
- if (!type) {
65
- context.reportError(new _GraphQLError.GraphQLError(unknownTypeMessage(typeName, (0, _suggestionList.default)(typeName, Object.keys(schema.getTypeMap()))), [node]));
82
+ if (!existingTypesMap[typeName] && !definedTypes[typeName]) {
83
+ var definitionNode = ancestors[2] || parent;
84
+ var isSDL = isSDLNode(definitionNode);
85
+
86
+ if (isSDL && isSpecifiedScalarName(typeName)) {
87
+ return;
88
+ }
89
+
90
+ var suggestedTypes = (0, _suggestionList.default)(typeName, isSDL ? specifiedScalarsNames.concat(typeNames) : typeNames);
91
+ context.reportError(new _GraphQLError.GraphQLError(unknownTypeMessage(typeName, suggestedTypes), node));
66
92
  }
67
93
  }
68
94
  };
95
+ }
96
+
97
+ var specifiedScalarsNames = _scalars.specifiedScalarTypes.map(function (type) {
98
+ return type.name;
99
+ });
100
+
101
+ function isSpecifiedScalarName(typeName) {
102
+ return specifiedScalarsNames.indexOf(typeName) !== -1;
103
+ }
104
+
105
+ function isSDLNode(value) {
106
+ return Boolean(value && !Array.isArray(value) && ((0, _predicates.isTypeSystemDefinitionNode)(value) || (0, _predicates.isTypeSystemExtensionNode)(value)));
69
107
  }
@@ -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,21 @@
7
7
  * @flow strict
8
8
  */
9
9
 
10
- import type { ValidationContext } from '../ValidationContext';
10
+ import type {
11
+ ValidationContext,
12
+ SDLValidationContext,
13
+ } from '../ValidationContext';
11
14
  import { GraphQLError } from '../../error/GraphQLError';
12
15
  import suggestionList from '../../jsutils/suggestionList';
13
16
  import quotedOrList from '../../jsutils/quotedOrList';
17
+ import type { ASTNode } from '../../language/ast';
14
18
  import type { ASTVisitor } from '../../language/visitor';
19
+ import {
20
+ isTypeDefinitionNode,
21
+ isTypeSystemDefinitionNode,
22
+ isTypeSystemExtensionNode,
23
+ } from '../../language/predicates';
24
+ import { specifiedScalarTypes } from '../../type/scalars';
15
25
 
16
26
  export function unknownTypeMessage(
17
27
  typeName: string,
@@ -30,30 +40,54 @@ export function unknownTypeMessage(
30
40
  * A GraphQL document is only valid if referenced types (specifically
31
41
  * variable definitions and fragment conditions) are defined by the type schema.
32
42
  */
33
- export function KnownTypeNames(context: ValidationContext): ASTVisitor {
43
+ export function KnownTypeNames(
44
+ context: ValidationContext | SDLValidationContext,
45
+ ): ASTVisitor {
46
+ const schema = context.getSchema();
47
+ const existingTypesMap = schema ? schema.getTypeMap() : Object.create(null);
48
+
49
+ const definedTypes = Object.create(null);
50
+ for (const def of context.getDocument().definitions) {
51
+ if (isTypeDefinitionNode(def)) {
52
+ definedTypes[def.name.value] = true;
53
+ }
54
+ }
55
+
56
+ const typeNames = Object.keys(existingTypesMap).concat(
57
+ Object.keys(definedTypes),
58
+ );
59
+
34
60
  return {
35
- // TODO: when validating IDL, re-enable these. Experimental version does not
36
- // add unreferenced types, resulting in false-positive errors. Squelched
37
- // errors for now.
38
- ObjectTypeDefinition: () => false,
39
- InterfaceTypeDefinition: () => false,
40
- UnionTypeDefinition: () => false,
41
- InputObjectTypeDefinition: () => false,
42
- NamedType(node) {
43
- const schema = context.getSchema();
61
+ NamedType(node, _1, parent, _2, ancestors) {
44
62
  const typeName = node.name.value;
45
- const type = schema.getType(typeName);
46
- if (!type) {
63
+ if (!existingTypesMap[typeName] && !definedTypes[typeName]) {
64
+ const definitionNode = ancestors[2] || parent;
65
+ const isSDL = isSDLNode(definitionNode);
66
+ if (isSDL && isSpecifiedScalarName(typeName)) {
67
+ return;
68
+ }
69
+
70
+ const suggestedTypes = suggestionList(
71
+ typeName,
72
+ isSDL ? specifiedScalarsNames.concat(typeNames) : typeNames,
73
+ );
47
74
  context.reportError(
48
- new GraphQLError(
49
- unknownTypeMessage(
50
- typeName,
51
- suggestionList(typeName, Object.keys(schema.getTypeMap())),
52
- ),
53
- [node],
54
- ),
75
+ new GraphQLError(unknownTypeMessage(typeName, suggestedTypes), node),
55
76
  );
56
77
  }
57
78
  },
58
79
  };
59
80
  }
81
+
82
+ const specifiedScalarsNames = specifiedScalarTypes.map(type => type.name);
83
+ function isSpecifiedScalarName(typeName) {
84
+ return specifiedScalarsNames.indexOf(typeName) !== -1;
85
+ }
86
+
87
+ function isSDLNode(value: ASTNode | $ReadOnlyArray<ASTNode> | void): boolean {
88
+ return Boolean(
89
+ value &&
90
+ !Array.isArray(value) &&
91
+ (isTypeSystemDefinitionNode(value) || isTypeSystemExtensionNode(value)),
92
+ );
93
+ }
@@ -1,14 +1,16 @@
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 { GraphQLError } from '../../error/GraphQLError';
10
10
  import suggestionList from '../../jsutils/suggestionList';
11
11
  import quotedOrList from '../../jsutils/quotedOrList';
12
+ import { isTypeDefinitionNode, isTypeSystemDefinitionNode, isTypeSystemExtensionNode } from '../../language/predicates';
13
+ import { specifiedScalarTypes } from '../../type/scalars';
12
14
  export function unknownTypeMessage(typeName, suggestedTypes) {
13
15
  var message = "Unknown type \"".concat(typeName, "\".");
14
16
 
@@ -26,30 +28,63 @@ export function unknownTypeMessage(typeName, suggestedTypes) {
26
28
  */
27
29
 
28
30
  export function KnownTypeNames(context) {
31
+ var schema = context.getSchema();
32
+ var existingTypesMap = schema ? schema.getTypeMap() : Object.create(null);
33
+ var definedTypes = Object.create(null);
34
+ var _iteratorNormalCompletion = true;
35
+ var _didIteratorError = false;
36
+ var _iteratorError = undefined;
37
+
38
+ try {
39
+ for (var _iterator = context.getDocument().definitions[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
40
+ var def = _step.value;
41
+
42
+ if (isTypeDefinitionNode(def)) {
43
+ definedTypes[def.name.value] = true;
44
+ }
45
+ }
46
+ } catch (err) {
47
+ _didIteratorError = true;
48
+ _iteratorError = err;
49
+ } finally {
50
+ try {
51
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
52
+ _iterator.return();
53
+ }
54
+ } finally {
55
+ if (_didIteratorError) {
56
+ throw _iteratorError;
57
+ }
58
+ }
59
+ }
60
+
61
+ var typeNames = Object.keys(existingTypesMap).concat(Object.keys(definedTypes));
29
62
  return {
30
- // TODO: when validating IDL, re-enable these. Experimental version does not
31
- // add unreferenced types, resulting in false-positive errors. Squelched
32
- // errors for now.
33
- ObjectTypeDefinition: function ObjectTypeDefinition() {
34
- return false;
35
- },
36
- InterfaceTypeDefinition: function InterfaceTypeDefinition() {
37
- return false;
38
- },
39
- UnionTypeDefinition: function UnionTypeDefinition() {
40
- return false;
41
- },
42
- InputObjectTypeDefinition: function InputObjectTypeDefinition() {
43
- return false;
44
- },
45
- NamedType: function NamedType(node) {
46
- var schema = context.getSchema();
63
+ NamedType: function NamedType(node, _1, parent, _2, ancestors) {
47
64
  var typeName = node.name.value;
48
- var type = schema.getType(typeName);
49
65
 
50
- if (!type) {
51
- context.reportError(new GraphQLError(unknownTypeMessage(typeName, suggestionList(typeName, Object.keys(schema.getTypeMap()))), [node]));
66
+ if (!existingTypesMap[typeName] && !definedTypes[typeName]) {
67
+ var definitionNode = ancestors[2] || parent;
68
+ var isSDL = isSDLNode(definitionNode);
69
+
70
+ if (isSDL && isSpecifiedScalarName(typeName)) {
71
+ return;
72
+ }
73
+
74
+ var suggestedTypes = suggestionList(typeName, isSDL ? specifiedScalarsNames.concat(typeNames) : typeNames);
75
+ context.reportError(new GraphQLError(unknownTypeMessage(typeName, suggestedTypes), node));
52
76
  }
53
77
  }
54
78
  };
79
+ }
80
+ var specifiedScalarsNames = specifiedScalarTypes.map(function (type) {
81
+ return type.name;
82
+ });
83
+
84
+ function isSpecifiedScalarName(typeName) {
85
+ return specifiedScalarsNames.indexOf(typeName) !== -1;
86
+ }
87
+
88
+ function isSDLNode(value) {
89
+ return Boolean(value && !Array.isArray(value) && (isTypeSystemDefinitionNode(value) || isTypeSystemExtensionNode(value)));
55
90
  }
@@ -11,12 +11,12 @@ var _GraphQLError = require("../../error/GraphQLError");
11
11
  var _kinds = require("../../language/kinds");
12
12
 
13
13
  /**
14
- * Copyright (c) 2015-present, Facebook, Inc.
14
+ * Copyright (c) Facebook, Inc. and its affiliates.
15
15
  *
16
16
  * This source code is licensed under the MIT license found in the
17
17
  * LICENSE file in the root directory of this source tree.
18
18
  *
19
- * strict
19
+ *
20
20
  */
21
21
  function anonOperationNotAloneMessage() {
22
22
  return 'This anonymous operation must be the only defined operation.';
@@ -39,7 +39,7 @@ function LoneAnonymousOperation(context) {
39
39
  },
40
40
  OperationDefinition: function OperationDefinition(node) {
41
41
  if (!node.name && operationCount > 1) {
42
- context.reportError(new _GraphQLError.GraphQLError(anonOperationNotAloneMessage(), [node]));
42
+ context.reportError(new _GraphQLError.GraphQLError(anonOperationNotAloneMessage(), node));
43
43
  }
44
44
  }
45
45
  };
@@ -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.
@@ -35,7 +35,7 @@ export function LoneAnonymousOperation(
35
35
  OperationDefinition(node) {
36
36
  if (!node.name && operationCount > 1) {
37
37
  context.reportError(
38
- new GraphQLError(anonOperationNotAloneMessage(), [node]),
38
+ new GraphQLError(anonOperationNotAloneMessage(), node),
39
39
  );
40
40
  }
41
41
  },
@@ -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 { GraphQLError } from '../../error/GraphQLError';
10
10
  import { Kind } from '../../language/kinds';
@@ -28,7 +28,7 @@ export function LoneAnonymousOperation(context) {
28
28
  },
29
29
  OperationDefinition: function OperationDefinition(node) {
30
30
  if (!node.name && operationCount > 1) {
31
- context.reportError(new GraphQLError(anonOperationNotAloneMessage(), [node]));
31
+ context.reportError(new GraphQLError(anonOperationNotAloneMessage(), node));
32
32
  }
33
33
  }
34
34
  };
@@ -10,12 +10,12 @@ exports.LoneSchemaDefinition = LoneSchemaDefinition;
10
10
  var _GraphQLError = require("../../error/GraphQLError");
11
11
 
12
12
  /**
13
- * Copyright (c) 2018-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
  function schemaDefinitionNotAloneMessage() {
21
21
  return 'Must provide only one schema definition.';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2018-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) 2018-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 { GraphQLError } from '../../error/GraphQLError';
10
10
  export function schemaDefinitionNotAloneMessage() {
@@ -9,12 +9,12 @@ exports.NoFragmentCycles = NoFragmentCycles;
9
9
  var _GraphQLError = require("../../error/GraphQLError");
10
10
 
11
11
  /**
12
- * Copyright (c) 2015-present, Facebook, Inc.
12
+ * Copyright (c) Facebook, Inc. and its affiliates.
13
13
  *
14
14
  * This source code is licensed under the MIT license found in the
15
15
  * LICENSE file in the root directory of this source tree.
16
16
  *
17
- * strict
17
+ *
18
18
  */
19
19
  function cycleErrorMessage(fragName, spreadNames) {
20
20
  var via = spreadNames.length ? ' via ' + spreadNames.join(', ') : '';
@@ -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,7 @@
7
7
  * @flow strict
8
8
  */
9
9
 
10
- import type { ValidationContext } from '../ValidationContext';
10
+ import type { ASTValidationContext } from '../ValidationContext';
11
11
  import { GraphQLError } from '../../error/GraphQLError';
12
12
  import type { FragmentDefinitionNode } from '../../language/ast';
13
13
  import type { ASTVisitor } from '../../language/visitor';
@@ -20,7 +20,7 @@ export function cycleErrorMessage(
20
20
  return `Cannot spread fragment "${fragName}" within itself${via}.`;
21
21
  }
22
22
 
23
- export function NoFragmentCycles(context: ValidationContext): ASTVisitor {
23
+ export function NoFragmentCycles(context: ASTValidationContext): ASTVisitor {
24
24
  // Tracks already visited fragments to maintain O(N) and to ensure that cycles
25
25
  // are not redundantly reported.
26
26
  const visitedFrags = Object.create(null);
@@ -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 { GraphQLError } from '../../error/GraphQLError';
10
10
  export function cycleErrorMessage(fragName, spreadNames) {
@@ -9,12 +9,12 @@ exports.NoUndefinedVariables = NoUndefinedVariables;
9
9
  var _GraphQLError = require("../../error/GraphQLError");
10
10
 
11
11
  /**
12
- * Copyright (c) 2015-present, Facebook, Inc.
12
+ * Copyright (c) Facebook, Inc. and its affiliates.
13
13
  *
14
14
  * This source code is licensed under the MIT license found in the
15
15
  * LICENSE file in the root directory of this source tree.
16
16
  *
17
- * strict
17
+ *
18
18
  */
19
19
  function undefinedVarMessage(varName, opName) {
20
20
  return opName ? "Variable \"$".concat(varName, "\" is not defined by operation \"").concat(opName, "\".") : "Variable \"$".concat(varName, "\" is not defined.");
@@ -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 { GraphQLError } from '../../error/GraphQLError';
10
10
  export function undefinedVarMessage(varName, opName) {
@@ -9,12 +9,12 @@ exports.NoUnusedFragments = NoUnusedFragments;
9
9
  var _GraphQLError = require("../../error/GraphQLError");
10
10
 
11
11
  /**
12
- * Copyright (c) 2015-present, Facebook, Inc.
12
+ * Copyright (c) Facebook, Inc. and its affiliates.
13
13
  *
14
14
  * This source code is licensed under the MIT license found in the
15
15
  * LICENSE file in the root directory of this source tree.
16
16
  *
17
- * strict
17
+ *
18
18
  */
19
19
  function unusedFragMessage(fragName) {
20
20
  return "Fragment \"".concat(fragName, "\" is never used.");
@@ -42,9 +42,10 @@ function NoUnusedFragments(context) {
42
42
  Document: {
43
43
  leave: function leave() {
44
44
  var fragmentNameUsed = Object.create(null);
45
+ var _arr = operationDefs;
45
46
 
46
- for (var _i = 0; _i < operationDefs.length; _i++) {
47
- var operation = operationDefs[_i];
47
+ for (var _i = 0; _i < _arr.length; _i++) {
48
+ var operation = _arr[_i];
48
49
  var _iteratorNormalCompletion = true;
49
50
  var _didIteratorError = false;
50
51
  var _iteratorError = undefined;
@@ -70,12 +71,14 @@ function NoUnusedFragments(context) {
70
71
  }
71
72
  }
72
73
 
73
- for (var _i2 = 0; _i2 < fragmentDefs.length; _i2++) {
74
- var fragmentDef = fragmentDefs[_i2];
74
+ var _arr2 = fragmentDefs;
75
+
76
+ for (var _i2 = 0; _i2 < _arr2.length; _i2++) {
77
+ var fragmentDef = _arr2[_i2];
75
78
  var fragName = fragmentDef.name.value;
76
79
 
77
80
  if (fragmentNameUsed[fragName] !== true) {
78
- context.reportError(new _GraphQLError.GraphQLError(unusedFragMessage(fragName), [fragmentDef]));
81
+ context.reportError(new _GraphQLError.GraphQLError(unusedFragMessage(fragName), fragmentDef));
79
82
  }
80
83
  }
81
84
  }
@@ -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,7 @@
7
7
  * @flow strict
8
8
  */
9
9
 
10
- import type { ValidationContext } from '../ValidationContext';
10
+ import type { ASTValidationContext } from '../ValidationContext';
11
11
  import { GraphQLError } from '../../error/GraphQLError';
12
12
  import type { ASTVisitor } from '../../language/visitor';
13
13
 
@@ -21,7 +21,7 @@ export function unusedFragMessage(fragName: string): string {
21
21
  * A GraphQL document is only valid if all fragment definitions are spread
22
22
  * within operations, or spread within other fragments spread within operations.
23
23
  */
24
- export function NoUnusedFragments(context: ValidationContext): ASTVisitor {
24
+ export function NoUnusedFragments(context: ASTValidationContext): ASTVisitor {
25
25
  const operationDefs = [];
26
26
  const fragmentDefs = [];
27
27
 
@@ -49,7 +49,7 @@ export function NoUnusedFragments(context: ValidationContext): ASTVisitor {
49
49
  const fragName = fragmentDef.name.value;
50
50
  if (fragmentNameUsed[fragName] !== true) {
51
51
  context.reportError(
52
- new GraphQLError(unusedFragMessage(fragName), [fragmentDef]),
52
+ new GraphQLError(unusedFragMessage(fragName), fragmentDef),
53
53
  );
54
54
  }
55
55
  }
@@ -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 { GraphQLError } from '../../error/GraphQLError';
10
10
  export function unusedFragMessage(fragName) {
@@ -32,9 +32,10 @@ export function NoUnusedFragments(context) {
32
32
  Document: {
33
33
  leave: function leave() {
34
34
  var fragmentNameUsed = Object.create(null);
35
+ var _arr = operationDefs;
35
36
 
36
- for (var _i = 0; _i < operationDefs.length; _i++) {
37
- var operation = operationDefs[_i];
37
+ for (var _i = 0; _i < _arr.length; _i++) {
38
+ var operation = _arr[_i];
38
39
  var _iteratorNormalCompletion = true;
39
40
  var _didIteratorError = false;
40
41
  var _iteratorError = undefined;
@@ -60,12 +61,14 @@ export function NoUnusedFragments(context) {
60
61
  }
61
62
  }
62
63
 
63
- for (var _i2 = 0; _i2 < fragmentDefs.length; _i2++) {
64
- var fragmentDef = fragmentDefs[_i2];
64
+ var _arr2 = fragmentDefs;
65
+
66
+ for (var _i2 = 0; _i2 < _arr2.length; _i2++) {
67
+ var fragmentDef = _arr2[_i2];
65
68
  var fragName = fragmentDef.name.value;
66
69
 
67
70
  if (fragmentNameUsed[fragName] !== true) {
68
- context.reportError(new GraphQLError(unusedFragMessage(fragName), [fragmentDef]));
71
+ context.reportError(new GraphQLError(unusedFragMessage(fragName), fragmentDef));
69
72
  }
70
73
  }
71
74
  }
@@ -9,12 +9,12 @@ exports.NoUnusedVariables = NoUnusedVariables;
9
9
  var _GraphQLError = require("../../error/GraphQLError");
10
10
 
11
11
  /**
12
- * Copyright (c) 2015-present, Facebook, Inc.
12
+ * Copyright (c) Facebook, Inc. and its affiliates.
13
13
  *
14
14
  * This source code is licensed under the MIT license found in the
15
15
  * LICENSE file in the root directory of this source tree.
16
16
  *
17
- * strict
17
+ *
18
18
  */
19
19
  function unusedVariableMessage(varName, opName) {
20
20
  return opName ? "Variable \"$".concat(varName, "\" is never used in operation \"").concat(opName, "\".") : "Variable \"$".concat(varName, "\" is never used.");
@@ -63,12 +63,14 @@ function NoUnusedVariables(context) {
63
63
  }
64
64
  }
65
65
 
66
- for (var _i = 0; _i < variableDefs.length; _i++) {
67
- var variableDef = variableDefs[_i];
66
+ var _arr = variableDefs;
67
+
68
+ for (var _i = 0; _i < _arr.length; _i++) {
69
+ var variableDef = _arr[_i];
68
70
  var variableName = variableDef.variable.name.value;
69
71
 
70
72
  if (variableNameUsed[variableName] !== true) {
71
- context.reportError(new _GraphQLError.GraphQLError(unusedVariableMessage(variableName, opName), [variableDef]));
73
+ context.reportError(new _GraphQLError.GraphQLError(unusedVariableMessage(variableName, opName), variableDef));
72
74
  }
73
75
  }
74
76
  }