graphql 15.2.0 → 15.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (338) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +19 -10
  3. package/error/GraphQLError.js +8 -8
  4. package/error/GraphQLError.js.flow +2 -3
  5. package/error/GraphQLError.mjs +2 -2
  6. package/error/formatError.js +1 -1
  7. package/error/formatError.js.flow +0 -1
  8. package/error/index.js +4 -4
  9. package/error/index.js.flow +0 -1
  10. package/error/locatedError.d.ts +2 -2
  11. package/error/locatedError.js +10 -5
  12. package/error/locatedError.js.flow +10 -4
  13. package/error/locatedError.mjs +6 -4
  14. package/error/syntaxError.js +1 -1
  15. package/error/syntaxError.js.flow +0 -1
  16. package/execution/execute.d.ts +11 -15
  17. package/execution/execute.js +110 -110
  18. package/execution/execute.js.flow +132 -139
  19. package/execution/execute.mjs +92 -88
  20. package/execution/index.d.ts +1 -0
  21. package/execution/index.js +3 -3
  22. package/execution/index.js.flow +6 -2
  23. package/execution/values.js +11 -11
  24. package/execution/values.js.flow +0 -1
  25. package/graphql.js +5 -5
  26. package/graphql.js.flow +0 -1
  27. package/index.d.ts +2 -0
  28. package/index.js +9 -9
  29. package/index.js.flow +5 -2
  30. package/jsutils/ObjMap.js.flow +0 -1
  31. package/jsutils/Path.js.flow +0 -1
  32. package/jsutils/PromiseOrValue.js.flow +0 -1
  33. package/jsutils/defineInspect.js +2 -2
  34. package/jsutils/defineInspect.js.flow +0 -1
  35. package/jsutils/devAssert.js.flow +0 -1
  36. package/jsutils/didYouMean.js.flow +0 -1
  37. package/jsutils/identityFunc.js.flow +0 -1
  38. package/jsutils/inspect.js +1 -2
  39. package/jsutils/inspect.js.flow +10 -8
  40. package/jsutils/inspect.mjs +1 -1
  41. package/jsutils/instanceOf.js.flow +2 -3
  42. package/jsutils/invariant.js.flow +0 -1
  43. package/jsutils/isAsyncIterable.js +13 -0
  44. package/jsutils/isAsyncIterable.js.flow +14 -0
  45. package/jsutils/isAsyncIterable.mjs +10 -0
  46. package/jsutils/isObjectLike.js.flow +0 -1
  47. package/jsutils/isPromise.js.flow +0 -1
  48. package/jsutils/keyMap.js.flow +0 -1
  49. package/jsutils/keyValMap.js.flow +0 -1
  50. package/jsutils/mapValue.js +1 -1
  51. package/jsutils/mapValue.js.flow +0 -1
  52. package/jsutils/memoize3.js +2 -5
  53. package/jsutils/memoize3.js.flow +2 -5
  54. package/jsutils/memoize3.mjs +2 -5
  55. package/jsutils/naturalCompare.js +69 -0
  56. package/jsutils/naturalCompare.js.flow +59 -0
  57. package/jsutils/naturalCompare.mjs +61 -0
  58. package/jsutils/nodejsCustomInspectSymbol.js.flow +0 -1
  59. package/jsutils/printPathArray.js.flow +0 -1
  60. package/jsutils/promiseForObject.js.flow +0 -1
  61. package/jsutils/promiseReduce.js +1 -1
  62. package/jsutils/promiseReduce.js.flow +0 -1
  63. package/jsutils/safeArrayFrom.js +73 -0
  64. package/jsutils/safeArrayFrom.js.flow +59 -0
  65. package/jsutils/safeArrayFrom.mjs +66 -0
  66. package/jsutils/suggestionList.js +5 -1
  67. package/jsutils/suggestionList.js.flow +3 -2
  68. package/jsutils/suggestionList.mjs +3 -1
  69. package/jsutils/toObjMap.js +1 -1
  70. package/jsutils/toObjMap.js.flow +0 -1
  71. package/language/ast.js +1 -1
  72. package/language/ast.js.flow +0 -1
  73. package/language/blockString.d.ts +1 -1
  74. package/language/blockString.js +53 -32
  75. package/language/blockString.js.flow +51 -36
  76. package/language/blockString.mjs +54 -33
  77. package/language/directiveLocation.js.flow +0 -1
  78. package/language/experimentalOnlineParser/grammar.d.ts +1006 -0
  79. package/language/experimentalOnlineParser/grammar.js +987 -0
  80. package/language/experimentalOnlineParser/grammar.js.flow +1000 -0
  81. package/language/experimentalOnlineParser/grammar.mjs +980 -0
  82. package/language/experimentalOnlineParser/index.d.ts +6 -0
  83. package/language/experimentalOnlineParser/index.js +31 -0
  84. package/language/experimentalOnlineParser/index.js.flow +7 -0
  85. package/language/experimentalOnlineParser/index.mjs +1 -0
  86. package/language/experimentalOnlineParser/onlineParser.d.ts +125 -0
  87. package/language/experimentalOnlineParser/onlineParser.js +604 -0
  88. package/language/experimentalOnlineParser/onlineParser.js.flow +723 -0
  89. package/language/experimentalOnlineParser/onlineParser.mjs +587 -0
  90. package/language/index.js +12 -12
  91. package/language/index.js.flow +0 -1
  92. package/language/kinds.js.flow +0 -1
  93. package/language/lexer.js +242 -183
  94. package/language/lexer.js.flow +188 -184
  95. package/language/lexer.mjs +238 -179
  96. package/language/location.js.flow +0 -1
  97. package/language/parser.js +73 -68
  98. package/language/parser.js.flow +62 -57
  99. package/language/parser.mjs +64 -60
  100. package/language/predicates.js +1 -1
  101. package/language/predicates.js.flow +0 -1
  102. package/language/printLocation.js +1 -1
  103. package/language/printLocation.js.flow +0 -1
  104. package/language/printer.js +20 -13
  105. package/language/printer.js.flow +26 -25
  106. package/language/printer.mjs +18 -11
  107. package/language/source.d.ts +12 -6
  108. package/language/source.js +25 -9
  109. package/language/source.js.flow +26 -9
  110. package/language/source.mjs +19 -7
  111. package/language/tokenKind.js.flow +0 -1
  112. package/language/visitor.d.ts +3 -3
  113. package/language/visitor.js +5 -5
  114. package/language/visitor.js.flow +3 -4
  115. package/language/visitor.mjs +3 -3
  116. package/package.json +2 -3
  117. package/polyfills/arrayFrom.js +2 -2
  118. package/polyfills/arrayFrom.js.flow +1 -2
  119. package/polyfills/arrayFrom.mjs +1 -1
  120. package/polyfills/find.js +1 -1
  121. package/polyfills/find.js.flow +1 -2
  122. package/polyfills/find.mjs +1 -1
  123. package/polyfills/isFinite.js +1 -1
  124. package/polyfills/isFinite.js.flow +1 -2
  125. package/polyfills/isFinite.mjs +1 -1
  126. package/polyfills/isInteger.js +1 -1
  127. package/polyfills/isInteger.js.flow +1 -2
  128. package/polyfills/isInteger.mjs +1 -1
  129. package/polyfills/objectEntries.js +1 -1
  130. package/polyfills/objectEntries.js.flow +1 -2
  131. package/polyfills/objectEntries.mjs +1 -1
  132. package/polyfills/objectValues.js +1 -1
  133. package/polyfills/objectValues.js.flow +1 -2
  134. package/polyfills/objectValues.mjs +1 -1
  135. package/polyfills/symbols.js +3 -5
  136. package/polyfills/symbols.js.flow +9 -6
  137. package/polyfills/symbols.mjs +3 -5
  138. package/subscription/index.js +1 -1
  139. package/subscription/index.js.flow +0 -1
  140. package/subscription/mapAsyncIterator.js +2 -2
  141. package/subscription/mapAsyncIterator.js.flow +8 -9
  142. package/subscription/mapAsyncIterator.mjs +1 -1
  143. package/subscription/subscribe.js +61 -73
  144. package/subscription/subscribe.js.flow +71 -85
  145. package/subscription/subscribe.mjs +53 -65
  146. package/type/definition.d.ts +17 -9
  147. package/type/definition.js +37 -32
  148. package/type/definition.js.flow +93 -63
  149. package/type/definition.mjs +19 -14
  150. package/type/directives.js +17 -16
  151. package/type/directives.js.flow +20 -13
  152. package/type/directives.mjs +6 -5
  153. package/type/index.js +6 -6
  154. package/type/index.js.flow +0 -1
  155. package/type/introspection.js +86 -65
  156. package/type/introspection.js.flow +75 -43
  157. package/type/introspection.mjs +79 -58
  158. package/type/scalars.js +9 -9
  159. package/type/scalars.js.flow +1 -2
  160. package/type/scalars.mjs +1 -1
  161. package/type/schema.js +13 -13
  162. package/type/schema.js.flow +2 -3
  163. package/type/schema.mjs +1 -1
  164. package/type/validate.js +52 -19
  165. package/type/validate.js.flow +54 -8
  166. package/type/validate.mjs +43 -9
  167. package/utilities/TypeInfo.js +7 -7
  168. package/utilities/TypeInfo.js.flow +1 -2
  169. package/utilities/assertValidName.js +2 -2
  170. package/utilities/assertValidName.js.flow +0 -1
  171. package/utilities/astFromValue.js +14 -16
  172. package/utilities/astFromValue.js.flow +6 -7
  173. package/utilities/astFromValue.mjs +6 -7
  174. package/utilities/buildASTSchema.js +17 -27
  175. package/utilities/buildASTSchema.js.flow +5 -21
  176. package/utilities/buildASTSchema.mjs +11 -21
  177. package/utilities/buildClientSchema.js +16 -15
  178. package/utilities/buildClientSchema.js.flow +28 -12
  179. package/utilities/buildClientSchema.mjs +5 -4
  180. package/utilities/coerceInputValue.js +17 -18
  181. package/utilities/coerceInputValue.js.flow +12 -10
  182. package/utilities/coerceInputValue.mjs +7 -7
  183. package/utilities/concatAST.js +9 -8
  184. package/utilities/concatAST.js.flow +8 -8
  185. package/utilities/concatAST.mjs +9 -6
  186. package/utilities/extendSchema.js +26 -19
  187. package/utilities/extendSchema.js.flow +19 -7
  188. package/utilities/extendSchema.mjs +8 -1
  189. package/utilities/findBreakingChanges.js +15 -11
  190. package/utilities/findBreakingChanges.js.flow +6 -3
  191. package/utilities/findBreakingChanges.mjs +5 -2
  192. package/utilities/findDeprecatedUsages.js +2 -2
  193. package/utilities/findDeprecatedUsages.js.flow +0 -1
  194. package/utilities/getIntrospectionQuery.d.ts +6 -0
  195. package/utilities/getIntrospectionQuery.js +8 -2
  196. package/utilities/getIntrospectionQuery.js.flow +17 -5
  197. package/utilities/getIntrospectionQuery.mjs +8 -2
  198. package/utilities/getOperationAST.js +1 -1
  199. package/utilities/getOperationAST.js.flow +0 -1
  200. package/utilities/getOperationRootType.js +1 -1
  201. package/utilities/getOperationRootType.js.flow +0 -1
  202. package/utilities/index.d.ts +3 -0
  203. package/utilities/index.js +22 -22
  204. package/utilities/index.js.flow +0 -1
  205. package/utilities/introspectionFromSchema.js +7 -5
  206. package/utilities/introspectionFromSchema.js.flow +2 -1
  207. package/utilities/introspectionFromSchema.mjs +3 -1
  208. package/utilities/lexicographicSortSchema.js +13 -9
  209. package/utilities/lexicographicSortSchema.js.flow +21 -13
  210. package/utilities/lexicographicSortSchema.mjs +5 -2
  211. package/utilities/printSchema.js +15 -16
  212. package/utilities/printSchema.js.flow +23 -16
  213. package/utilities/printSchema.mjs +5 -6
  214. package/utilities/separateOperations.js +46 -42
  215. package/utilities/separateOperations.js.flow +46 -37
  216. package/utilities/separateOperations.mjs +44 -40
  217. package/utilities/stripIgnoredCharacters.js +6 -16
  218. package/utilities/stripIgnoredCharacters.js.flow +4 -13
  219. package/utilities/stripIgnoredCharacters.mjs +3 -10
  220. package/utilities/typeComparators.js +1 -1
  221. package/utilities/typeComparators.js.flow +0 -1
  222. package/utilities/typeFromAST.js +6 -6
  223. package/utilities/typeFromAST.js.flow +2 -3
  224. package/utilities/typeFromAST.mjs +2 -2
  225. package/utilities/typedQueryDocumentNode.d.ts +20 -0
  226. package/utilities/valueFromAST.js +6 -6
  227. package/utilities/valueFromAST.js.flow +4 -2
  228. package/utilities/valueFromASTUntyped.js +4 -4
  229. package/utilities/valueFromASTUntyped.js.flow +0 -1
  230. package/validation/ValidationContext.js +3 -3
  231. package/validation/ValidationContext.js.flow +3 -4
  232. package/validation/index.js +38 -38
  233. package/validation/index.js.flow +0 -1
  234. package/validation/rules/ExecutableDefinitions.js +1 -1
  235. package/validation/rules/ExecutableDefinitions.js.flow +0 -1
  236. package/validation/rules/ExecutableDefinitionsRule.js +3 -3
  237. package/validation/rules/ExecutableDefinitionsRule.js.flow +0 -1
  238. package/validation/rules/FieldsOnCorrectTypeRule.js +8 -6
  239. package/validation/rules/FieldsOnCorrectTypeRule.js.flow +2 -2
  240. package/validation/rules/FieldsOnCorrectTypeRule.mjs +2 -1
  241. package/validation/rules/FragmentsOnCompositeTypesRule.js +4 -4
  242. package/validation/rules/FragmentsOnCompositeTypesRule.js.flow +0 -1
  243. package/validation/rules/KnownArgumentNamesRule.js +5 -5
  244. package/validation/rules/KnownArgumentNamesRule.js.flow +1 -1
  245. package/validation/rules/KnownDirectivesRule.js +6 -6
  246. package/validation/rules/KnownDirectivesRule.js.flow +4 -3
  247. package/validation/rules/KnownFragmentNamesRule.js +1 -1
  248. package/validation/rules/KnownFragmentNamesRule.js.flow +0 -1
  249. package/validation/rules/KnownTypeNamesRule.js +6 -6
  250. package/validation/rules/KnownTypeNamesRule.js.flow +1 -2
  251. package/validation/rules/LoneAnonymousOperationRule.js +2 -2
  252. package/validation/rules/LoneAnonymousOperationRule.js.flow +0 -1
  253. package/validation/rules/LoneSchemaDefinition.js +1 -1
  254. package/validation/rules/LoneSchemaDefinition.js.flow +0 -1
  255. package/validation/rules/LoneSchemaDefinitionRule.js +1 -1
  256. package/validation/rules/LoneSchemaDefinitionRule.js.flow +0 -1
  257. package/validation/rules/NoFragmentCyclesRule.js +1 -1
  258. package/validation/rules/NoFragmentCyclesRule.js.flow +1 -2
  259. package/validation/rules/NoUndefinedVariablesRule.js +1 -1
  260. package/validation/rules/NoUndefinedVariablesRule.js.flow +0 -1
  261. package/validation/rules/NoUnusedFragmentsRule.js +1 -1
  262. package/validation/rules/NoUnusedFragmentsRule.js.flow +0 -1
  263. package/validation/rules/NoUnusedVariablesRule.js +1 -1
  264. package/validation/rules/NoUnusedVariablesRule.js.flow +0 -1
  265. package/validation/rules/OverlappingFieldsCanBeMergedRule.js +20 -20
  266. package/validation/rules/OverlappingFieldsCanBeMergedRule.js.flow +14 -14
  267. package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +12 -12
  268. package/validation/rules/PossibleFragmentSpreadsRule.js +5 -5
  269. package/validation/rules/PossibleFragmentSpreadsRule.js.flow +5 -2
  270. package/validation/rules/PossibleTypeExtensions.js +1 -1
  271. package/validation/rules/PossibleTypeExtensions.js.flow +0 -1
  272. package/validation/rules/PossibleTypeExtensionsRule.js +8 -8
  273. package/validation/rules/PossibleTypeExtensionsRule.js.flow +6 -4
  274. package/validation/rules/ProvidedRequiredArgumentsRule.js +7 -7
  275. package/validation/rules/ProvidedRequiredArgumentsRule.js.flow +4 -3
  276. package/validation/rules/ScalarLeafsRule.js +3 -3
  277. package/validation/rules/ScalarLeafsRule.js.flow +0 -1
  278. package/validation/rules/SingleFieldSubscriptionsRule.js +1 -1
  279. package/validation/rules/SingleFieldSubscriptionsRule.js.flow +0 -1
  280. package/validation/rules/UniqueArgumentNamesRule.js +1 -1
  281. package/validation/rules/UniqueArgumentNamesRule.js.flow +0 -1
  282. package/validation/rules/UniqueDirectiveNames.js +1 -1
  283. package/validation/rules/UniqueDirectiveNames.js.flow +0 -1
  284. package/validation/rules/UniqueDirectiveNamesRule.js +2 -2
  285. package/validation/rules/UniqueDirectiveNamesRule.js.flow +0 -1
  286. package/validation/rules/UniqueDirectiveNamesRule.mjs +1 -1
  287. package/validation/rules/UniqueDirectivesPerLocationRule.js +4 -4
  288. package/validation/rules/UniqueDirectivesPerLocationRule.js.flow +0 -1
  289. package/validation/rules/UniqueEnumValueNames.js +1 -1
  290. package/validation/rules/UniqueEnumValueNames.js.flow +0 -1
  291. package/validation/rules/UniqueEnumValueNamesRule.js +2 -2
  292. package/validation/rules/UniqueEnumValueNamesRule.js.flow +7 -2
  293. package/validation/rules/UniqueFieldDefinitionNames.js +1 -1
  294. package/validation/rules/UniqueFieldDefinitionNames.js.flow +0 -1
  295. package/validation/rules/UniqueFieldDefinitionNamesRule.js +3 -3
  296. package/validation/rules/UniqueFieldDefinitionNamesRule.js.flow +13 -4
  297. package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +1 -1
  298. package/validation/rules/UniqueFragmentNamesRule.js +1 -1
  299. package/validation/rules/UniqueFragmentNamesRule.js.flow +0 -1
  300. package/validation/rules/UniqueInputFieldNamesRule.js +1 -1
  301. package/validation/rules/UniqueInputFieldNamesRule.js.flow +0 -1
  302. package/validation/rules/UniqueOperationNamesRule.js +1 -1
  303. package/validation/rules/UniqueOperationNamesRule.js.flow +0 -1
  304. package/validation/rules/UniqueOperationTypes.js +1 -1
  305. package/validation/rules/UniqueOperationTypes.js.flow +0 -1
  306. package/validation/rules/UniqueOperationTypesRule.js +1 -1
  307. package/validation/rules/UniqueOperationTypesRule.js.flow +7 -2
  308. package/validation/rules/UniqueTypeNames.js +1 -1
  309. package/validation/rules/UniqueTypeNames.js.flow +0 -1
  310. package/validation/rules/UniqueTypeNamesRule.js +2 -2
  311. package/validation/rules/UniqueTypeNamesRule.js.flow +0 -1
  312. package/validation/rules/UniqueTypeNamesRule.mjs +1 -1
  313. package/validation/rules/UniqueVariableNamesRule.js +1 -1
  314. package/validation/rules/UniqueVariableNamesRule.js.flow +0 -1
  315. package/validation/rules/ValuesOfCorrectTypeRule.js +8 -8
  316. package/validation/rules/ValuesOfCorrectTypeRule.js.flow +0 -1
  317. package/validation/rules/VariablesAreInputTypesRule.js +4 -4
  318. package/validation/rules/VariablesAreInputTypesRule.js.flow +0 -1
  319. package/validation/rules/VariablesInAllowedPositionRule.js +6 -6
  320. package/validation/rules/VariablesInAllowedPositionRule.js.flow +0 -1
  321. package/validation/rules/custom/NoDeprecatedCustomRule.js +47 -9
  322. package/validation/rules/custom/NoDeprecatedCustomRule.js.flow +56 -13
  323. package/validation/rules/custom/NoDeprecatedCustomRule.mjs +43 -8
  324. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +3 -3
  325. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js.flow +0 -1
  326. package/validation/specifiedRules.js +33 -33
  327. package/validation/specifiedRules.js.flow +0 -1
  328. package/validation/validate.js +7 -7
  329. package/validation/validate.js.flow +4 -5
  330. package/version.js +2 -2
  331. package/version.js.flow +2 -3
  332. package/version.mjs +2 -2
  333. package/jsutils/isCollection.js +0 -47
  334. package/jsutils/isCollection.js.flow +0 -39
  335. package/jsutils/isCollection.mjs +0 -40
  336. package/polyfills/flatMap.js +0 -30
  337. package/polyfills/flatMap.js.flow +0 -28
  338. package/polyfills/flatMap.mjs +0 -23
@@ -1,11 +1,11 @@
1
1
  // @flow strict
2
+ import invariant from '../../../jsutils/invariant';
2
3
 
3
4
  import { GraphQLError } from '../../../error/GraphQLError';
4
5
 
5
- import type { EnumValueNode, FieldNode } from '../../../language/ast';
6
6
  import type { ASTVisitor } from '../../../language/visitor';
7
7
 
8
- import { getNamedType } from '../../../type/definition';
8
+ import { getNamedType, isInputObjectType } from '../../../type/definition';
9
9
 
10
10
  import type { ValidationContext } from '../../ValidationContext';
11
11
 
@@ -21,27 +21,70 @@ import type { ValidationContext } from '../../ValidationContext';
21
21
  */
22
22
  export function NoDeprecatedCustomRule(context: ValidationContext): ASTVisitor {
23
23
  return {
24
- Field(node: FieldNode) {
24
+ Field(node) {
25
25
  const fieldDef = context.getFieldDef();
26
- const parentType = context.getParentType();
27
- if (parentType && fieldDef?.deprecationReason != null) {
26
+ const deprecationReason = fieldDef?.deprecationReason;
27
+ if (fieldDef && deprecationReason != null) {
28
+ const parentType = context.getParentType();
29
+ invariant(parentType != null);
28
30
  context.reportError(
29
31
  new GraphQLError(
30
- `The field ${parentType.name}.${fieldDef.name} is deprecated. ` +
31
- fieldDef.deprecationReason,
32
+ `The field ${parentType.name}.${fieldDef.name} is deprecated. ${deprecationReason}`,
32
33
  node,
33
34
  ),
34
35
  );
35
36
  }
36
37
  },
37
- EnumValue(node: EnumValueNode) {
38
- const type = getNamedType(context.getInputType());
39
- const enumValue = context.getEnumValue();
40
- if (type && enumValue?.deprecationReason != null) {
38
+ Argument(node) {
39
+ const argDef = context.getArgument();
40
+ const deprecationReason = argDef?.deprecationReason;
41
+ if (argDef && deprecationReason != null) {
42
+ const directiveDef = context.getDirective();
43
+ if (directiveDef != null) {
44
+ context.reportError(
45
+ new GraphQLError(
46
+ `Directive "@${directiveDef.name}" argument "${argDef.name}" is deprecated. ${deprecationReason}`,
47
+ node,
48
+ ),
49
+ );
50
+ } else {
51
+ const parentType = context.getParentType();
52
+ const fieldDef = context.getFieldDef();
53
+ invariant(parentType != null && fieldDef != null);
54
+ context.reportError(
55
+ new GraphQLError(
56
+ `Field "${parentType.name}.${fieldDef.name}" argument "${argDef.name}" is deprecated. ${deprecationReason}`,
57
+ node,
58
+ ),
59
+ );
60
+ }
61
+ }
62
+ },
63
+ ObjectField(node) {
64
+ const inputObjectDef = getNamedType(context.getParentInputType());
65
+ if (isInputObjectType(inputObjectDef)) {
66
+ const inputFieldDef = inputObjectDef.getFields()[node.name.value];
67
+ // flowlint-next-line unnecessary-optional-chain:off
68
+ const deprecationReason = inputFieldDef?.deprecationReason;
69
+ if (deprecationReason != null) {
70
+ context.reportError(
71
+ new GraphQLError(
72
+ `The input field ${inputObjectDef.name}.${inputFieldDef.name} is deprecated. ${deprecationReason}`,
73
+ node,
74
+ ),
75
+ );
76
+ }
77
+ }
78
+ },
79
+ EnumValue(node) {
80
+ const enumValueDef = context.getEnumValue();
81
+ const deprecationReason = enumValueDef?.deprecationReason;
82
+ if (enumValueDef && deprecationReason != null) {
83
+ const enumTypeDef = getNamedType(context.getInputType());
84
+ invariant(enumTypeDef != null);
41
85
  context.reportError(
42
86
  new GraphQLError(
43
- `The enum value "${type.name}.${enumValue.name}" is deprecated. ` +
44
- enumValue.deprecationReason,
87
+ `The enum value "${enumTypeDef.name}.${enumValueDef.name}" is deprecated. ${deprecationReason}`,
45
88
  node,
46
89
  ),
47
90
  );
@@ -1,5 +1,6 @@
1
+ import invariant from "../../../jsutils/invariant.mjs";
1
2
  import { GraphQLError } from "../../../error/GraphQLError.mjs";
2
- import { getNamedType } from "../../../type/definition.mjs";
3
+ import { getNamedType, isInputObjectType } from "../../../type/definition.mjs";
3
4
 
4
5
  /**
5
6
  * No deprecated
@@ -15,18 +16,52 @@ export function NoDeprecatedCustomRule(context) {
15
16
  return {
16
17
  Field: function Field(node) {
17
18
  var fieldDef = context.getFieldDef();
18
- var parentType = context.getParentType();
19
+ var deprecationReason = fieldDef === null || fieldDef === void 0 ? void 0 : fieldDef.deprecationReason;
19
20
 
20
- if (parentType && (fieldDef === null || fieldDef === void 0 ? void 0 : fieldDef.deprecationReason) != null) {
21
- context.reportError(new GraphQLError("The field ".concat(parentType.name, ".").concat(fieldDef.name, " is deprecated. ") + fieldDef.deprecationReason, node));
21
+ if (fieldDef && deprecationReason != null) {
22
+ var parentType = context.getParentType();
23
+ parentType != null || invariant(0);
24
+ context.reportError(new GraphQLError("The field ".concat(parentType.name, ".").concat(fieldDef.name, " is deprecated. ").concat(deprecationReason), node));
25
+ }
26
+ },
27
+ Argument: function Argument(node) {
28
+ var argDef = context.getArgument();
29
+ var deprecationReason = argDef === null || argDef === void 0 ? void 0 : argDef.deprecationReason;
30
+
31
+ if (argDef && deprecationReason != null) {
32
+ var directiveDef = context.getDirective();
33
+
34
+ if (directiveDef != null) {
35
+ context.reportError(new GraphQLError("Directive \"@".concat(directiveDef.name, "\" argument \"").concat(argDef.name, "\" is deprecated. ").concat(deprecationReason), node));
36
+ } else {
37
+ var parentType = context.getParentType();
38
+ var fieldDef = context.getFieldDef();
39
+ parentType != null && fieldDef != null || invariant(0);
40
+ context.reportError(new GraphQLError("Field \"".concat(parentType.name, ".").concat(fieldDef.name, "\" argument \"").concat(argDef.name, "\" is deprecated. ").concat(deprecationReason), node));
41
+ }
42
+ }
43
+ },
44
+ ObjectField: function ObjectField(node) {
45
+ var inputObjectDef = getNamedType(context.getParentInputType());
46
+
47
+ if (isInputObjectType(inputObjectDef)) {
48
+ var inputFieldDef = inputObjectDef.getFields()[node.name.value]; // flowlint-next-line unnecessary-optional-chain:off
49
+
50
+ var deprecationReason = inputFieldDef === null || inputFieldDef === void 0 ? void 0 : inputFieldDef.deprecationReason;
51
+
52
+ if (deprecationReason != null) {
53
+ context.reportError(new GraphQLError("The input field ".concat(inputObjectDef.name, ".").concat(inputFieldDef.name, " is deprecated. ").concat(deprecationReason), node));
54
+ }
22
55
  }
23
56
  },
24
57
  EnumValue: function EnumValue(node) {
25
- var type = getNamedType(context.getInputType());
26
- var enumValue = context.getEnumValue();
58
+ var enumValueDef = context.getEnumValue();
59
+ var deprecationReason = enumValueDef === null || enumValueDef === void 0 ? void 0 : enumValueDef.deprecationReason;
27
60
 
28
- if (type && (enumValue === null || enumValue === void 0 ? void 0 : enumValue.deprecationReason) != null) {
29
- context.reportError(new GraphQLError("The enum value \"".concat(type.name, ".").concat(enumValue.name, "\" is deprecated. ") + enumValue.deprecationReason, node));
61
+ if (enumValueDef && deprecationReason != null) {
62
+ var enumTypeDef = getNamedType(context.getInputType());
63
+ enumTypeDef != null || invariant(0);
64
+ context.reportError(new GraphQLError("The enum value \"".concat(enumTypeDef.name, ".").concat(enumValueDef.name, "\" is deprecated. ").concat(deprecationReason), node));
30
65
  }
31
66
  }
32
67
  };
@@ -5,11 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.NoSchemaIntrospectionCustomRule = NoSchemaIntrospectionCustomRule;
7
7
 
8
- var _GraphQLError = require("../../../error/GraphQLError");
8
+ var _GraphQLError = require("../../../error/GraphQLError.js");
9
9
 
10
- var _definition = require("../../../type/definition");
10
+ var _definition = require("../../../type/definition.js");
11
11
 
12
- var _introspection = require("../../../type/introspection");
12
+ var _introspection = require("../../../type/introspection.js");
13
13
 
14
14
  /**
15
15
  * Prohibit introspection queries
@@ -1,5 +1,4 @@
1
1
  // @flow strict
2
-
3
2
  import { GraphQLError } from '../../../error/GraphQLError';
4
3
 
5
4
  import type { FieldNode } from '../../../language/ast';
@@ -5,71 +5,71 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.specifiedSDLRules = exports.specifiedRules = void 0;
7
7
 
8
- var _ExecutableDefinitionsRule = require("./rules/ExecutableDefinitionsRule");
8
+ var _ExecutableDefinitionsRule = require("./rules/ExecutableDefinitionsRule.js");
9
9
 
10
- var _UniqueOperationNamesRule = require("./rules/UniqueOperationNamesRule");
10
+ var _UniqueOperationNamesRule = require("./rules/UniqueOperationNamesRule.js");
11
11
 
12
- var _LoneAnonymousOperationRule = require("./rules/LoneAnonymousOperationRule");
12
+ var _LoneAnonymousOperationRule = require("./rules/LoneAnonymousOperationRule.js");
13
13
 
14
- var _SingleFieldSubscriptionsRule = require("./rules/SingleFieldSubscriptionsRule");
14
+ var _SingleFieldSubscriptionsRule = require("./rules/SingleFieldSubscriptionsRule.js");
15
15
 
16
- var _KnownTypeNamesRule = require("./rules/KnownTypeNamesRule");
16
+ var _KnownTypeNamesRule = require("./rules/KnownTypeNamesRule.js");
17
17
 
18
- var _FragmentsOnCompositeTypesRule = require("./rules/FragmentsOnCompositeTypesRule");
18
+ var _FragmentsOnCompositeTypesRule = require("./rules/FragmentsOnCompositeTypesRule.js");
19
19
 
20
- var _VariablesAreInputTypesRule = require("./rules/VariablesAreInputTypesRule");
20
+ var _VariablesAreInputTypesRule = require("./rules/VariablesAreInputTypesRule.js");
21
21
 
22
- var _ScalarLeafsRule = require("./rules/ScalarLeafsRule");
22
+ var _ScalarLeafsRule = require("./rules/ScalarLeafsRule.js");
23
23
 
24
- var _FieldsOnCorrectTypeRule = require("./rules/FieldsOnCorrectTypeRule");
24
+ var _FieldsOnCorrectTypeRule = require("./rules/FieldsOnCorrectTypeRule.js");
25
25
 
26
- var _UniqueFragmentNamesRule = require("./rules/UniqueFragmentNamesRule");
26
+ var _UniqueFragmentNamesRule = require("./rules/UniqueFragmentNamesRule.js");
27
27
 
28
- var _KnownFragmentNamesRule = require("./rules/KnownFragmentNamesRule");
28
+ var _KnownFragmentNamesRule = require("./rules/KnownFragmentNamesRule.js");
29
29
 
30
- var _NoUnusedFragmentsRule = require("./rules/NoUnusedFragmentsRule");
30
+ var _NoUnusedFragmentsRule = require("./rules/NoUnusedFragmentsRule.js");
31
31
 
32
- var _PossibleFragmentSpreadsRule = require("./rules/PossibleFragmentSpreadsRule");
32
+ var _PossibleFragmentSpreadsRule = require("./rules/PossibleFragmentSpreadsRule.js");
33
33
 
34
- var _NoFragmentCyclesRule = require("./rules/NoFragmentCyclesRule");
34
+ var _NoFragmentCyclesRule = require("./rules/NoFragmentCyclesRule.js");
35
35
 
36
- var _UniqueVariableNamesRule = require("./rules/UniqueVariableNamesRule");
36
+ var _UniqueVariableNamesRule = require("./rules/UniqueVariableNamesRule.js");
37
37
 
38
- var _NoUndefinedVariablesRule = require("./rules/NoUndefinedVariablesRule");
38
+ var _NoUndefinedVariablesRule = require("./rules/NoUndefinedVariablesRule.js");
39
39
 
40
- var _NoUnusedVariablesRule = require("./rules/NoUnusedVariablesRule");
40
+ var _NoUnusedVariablesRule = require("./rules/NoUnusedVariablesRule.js");
41
41
 
42
- var _KnownDirectivesRule = require("./rules/KnownDirectivesRule");
42
+ var _KnownDirectivesRule = require("./rules/KnownDirectivesRule.js");
43
43
 
44
- var _UniqueDirectivesPerLocationRule = require("./rules/UniqueDirectivesPerLocationRule");
44
+ var _UniqueDirectivesPerLocationRule = require("./rules/UniqueDirectivesPerLocationRule.js");
45
45
 
46
- var _KnownArgumentNamesRule = require("./rules/KnownArgumentNamesRule");
46
+ var _KnownArgumentNamesRule = require("./rules/KnownArgumentNamesRule.js");
47
47
 
48
- var _UniqueArgumentNamesRule = require("./rules/UniqueArgumentNamesRule");
48
+ var _UniqueArgumentNamesRule = require("./rules/UniqueArgumentNamesRule.js");
49
49
 
50
- var _ValuesOfCorrectTypeRule = require("./rules/ValuesOfCorrectTypeRule");
50
+ var _ValuesOfCorrectTypeRule = require("./rules/ValuesOfCorrectTypeRule.js");
51
51
 
52
- var _ProvidedRequiredArgumentsRule = require("./rules/ProvidedRequiredArgumentsRule");
52
+ var _ProvidedRequiredArgumentsRule = require("./rules/ProvidedRequiredArgumentsRule.js");
53
53
 
54
- var _VariablesInAllowedPositionRule = require("./rules/VariablesInAllowedPositionRule");
54
+ var _VariablesInAllowedPositionRule = require("./rules/VariablesInAllowedPositionRule.js");
55
55
 
56
- var _OverlappingFieldsCanBeMergedRule = require("./rules/OverlappingFieldsCanBeMergedRule");
56
+ var _OverlappingFieldsCanBeMergedRule = require("./rules/OverlappingFieldsCanBeMergedRule.js");
57
57
 
58
- var _UniqueInputFieldNamesRule = require("./rules/UniqueInputFieldNamesRule");
58
+ var _UniqueInputFieldNamesRule = require("./rules/UniqueInputFieldNamesRule.js");
59
59
 
60
- var _LoneSchemaDefinitionRule = require("./rules/LoneSchemaDefinitionRule");
60
+ var _LoneSchemaDefinitionRule = require("./rules/LoneSchemaDefinitionRule.js");
61
61
 
62
- var _UniqueOperationTypesRule = require("./rules/UniqueOperationTypesRule");
62
+ var _UniqueOperationTypesRule = require("./rules/UniqueOperationTypesRule.js");
63
63
 
64
- var _UniqueTypeNamesRule = require("./rules/UniqueTypeNamesRule");
64
+ var _UniqueTypeNamesRule = require("./rules/UniqueTypeNamesRule.js");
65
65
 
66
- var _UniqueEnumValueNamesRule = require("./rules/UniqueEnumValueNamesRule");
66
+ var _UniqueEnumValueNamesRule = require("./rules/UniqueEnumValueNamesRule.js");
67
67
 
68
- var _UniqueFieldDefinitionNamesRule = require("./rules/UniqueFieldDefinitionNamesRule");
68
+ var _UniqueFieldDefinitionNamesRule = require("./rules/UniqueFieldDefinitionNamesRule.js");
69
69
 
70
- var _UniqueDirectiveNamesRule = require("./rules/UniqueDirectiveNamesRule");
70
+ var _UniqueDirectiveNamesRule = require("./rules/UniqueDirectiveNamesRule.js");
71
71
 
72
- var _PossibleTypeExtensionsRule = require("./rules/PossibleTypeExtensionsRule");
72
+ var _PossibleTypeExtensionsRule = require("./rules/PossibleTypeExtensionsRule.js");
73
73
 
74
74
  // Spec Section: "Executable Definitions"
75
75
  // Spec Section: "Operation Name Uniqueness"
@@ -1,5 +1,4 @@
1
1
  // @flow strict
2
-
3
2
  // Spec Section: "Executable Definitions"
4
3
  import { ExecutableDefinitionsRule } from './rules/ExecutableDefinitionsRule';
5
4
 
@@ -8,19 +8,19 @@ exports.validateSDL = validateSDL;
8
8
  exports.assertValidSDL = assertValidSDL;
9
9
  exports.assertValidSDLExtension = assertValidSDLExtension;
10
10
 
11
- var _devAssert = _interopRequireDefault(require("../jsutils/devAssert"));
11
+ var _devAssert = _interopRequireDefault(require("../jsutils/devAssert.js"));
12
12
 
13
- var _GraphQLError = require("../error/GraphQLError");
13
+ var _GraphQLError = require("../error/GraphQLError.js");
14
14
 
15
- var _visitor = require("../language/visitor");
15
+ var _visitor = require("../language/visitor.js");
16
16
 
17
- var _validate = require("../type/validate");
17
+ var _validate = require("../type/validate.js");
18
18
 
19
- var _TypeInfo = require("../utilities/TypeInfo");
19
+ var _TypeInfo = require("../utilities/TypeInfo.js");
20
20
 
21
- var _specifiedRules = require("./specifiedRules");
21
+ var _specifiedRules = require("./specifiedRules.js");
22
22
 
23
- var _ValidationContext = require("./ValidationContext");
23
+ var _ValidationContext = require("./ValidationContext.js");
24
24
 
25
25
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26
26
 
@@ -1,5 +1,4 @@
1
1
  // @flow strict
2
-
3
2
  import devAssert from '../jsutils/devAssert';
4
3
 
5
4
  import { GraphQLError } from '../error/GraphQLError';
@@ -35,9 +34,9 @@ import { SDLValidationContext, ValidationContext } from './ValidationContext';
35
34
  export function validate(
36
35
  schema: GraphQLSchema,
37
36
  documentAST: DocumentNode,
38
- rules?: $ReadOnlyArray<ValidationRule> = specifiedRules,
39
- typeInfo?: TypeInfo = new TypeInfo(schema),
40
- options?: {| maxErrors?: number |} = { maxErrors: undefined },
37
+ rules: $ReadOnlyArray<ValidationRule> = specifiedRules,
38
+ typeInfo: TypeInfo = new TypeInfo(schema),
39
+ options: {| maxErrors?: number |} = { maxErrors: undefined },
41
40
  ): $ReadOnlyArray<GraphQLError> {
42
41
  devAssert(documentAST, 'Must provide document.');
43
42
  // If the schema used for validation is invalid, throw an error.
@@ -83,7 +82,7 @@ export function validate(
83
82
  export function validateSDL(
84
83
  documentAST: DocumentNode,
85
84
  schemaToExtend?: ?GraphQLSchema,
86
- rules?: $ReadOnlyArray<SDLValidationRule> = specifiedSDLRules,
85
+ rules: $ReadOnlyArray<SDLValidationRule> = specifiedSDLRules,
87
86
  ): $ReadOnlyArray<GraphQLError> {
88
87
  const errors = [];
89
88
  const context = new SDLValidationContext(
package/version.js CHANGED
@@ -13,7 +13,7 @@ exports.versionInfo = exports.version = void 0;
13
13
  /**
14
14
  * A string containing the version of the GraphQL.js library
15
15
  */
16
- var version = '15.2.0';
16
+ var version = '15.5.0';
17
17
  /**
18
18
  * An object containing the components of the GraphQL.js version string
19
19
  */
@@ -21,7 +21,7 @@ var version = '15.2.0';
21
21
  exports.version = version;
22
22
  var versionInfo = Object.freeze({
23
23
  major: 15,
24
- minor: 2,
24
+ minor: 5,
25
25
  patch: 0,
26
26
  preReleaseTag: null
27
27
  });
package/version.js.flow CHANGED
@@ -1,5 +1,4 @@
1
1
  // @flow strict
2
-
3
2
  /**
4
3
  * Note: This file is autogenerated using "resources/gen-version.js" script and
5
4
  * automatically updated by "npm version" command.
@@ -8,14 +7,14 @@
8
7
  /**
9
8
  * A string containing the version of the GraphQL.js library
10
9
  */
11
- export const version = '15.2.0';
10
+ export const version = '15.5.0';
12
11
 
13
12
  /**
14
13
  * An object containing the components of the GraphQL.js version string
15
14
  */
16
15
  export const versionInfo = Object.freeze({
17
16
  major: 15,
18
- minor: 2,
17
+ minor: 5,
19
18
  patch: 0,
20
19
  preReleaseTag: null,
21
20
  });
package/version.mjs CHANGED
@@ -6,14 +6,14 @@
6
6
  /**
7
7
  * A string containing the version of the GraphQL.js library
8
8
  */
9
- export var version = '15.2.0';
9
+ export var version = '15.5.0';
10
10
  /**
11
11
  * An object containing the components of the GraphQL.js version string
12
12
  */
13
13
 
14
14
  export var versionInfo = Object.freeze({
15
15
  major: 15,
16
- minor: 2,
16
+ minor: 5,
17
17
  patch: 0,
18
18
  preReleaseTag: null
19
19
  });
@@ -1,47 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = isCollection;
7
-
8
- var _symbols = require("../polyfills/symbols");
9
-
10
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
11
-
12
- /**
13
- * Returns true if the provided object is an Object (i.e. not a string literal)
14
- * and is either Iterable or Array-like.
15
- *
16
- * This may be used in place of [Array.isArray()][isArray] to determine if an
17
- * object should be iterated-over. It always excludes string literals and
18
- * includes Arrays (regardless of if it is Iterable). It also includes other
19
- * Array-like objects such as NodeList, TypedArray, and Buffer.
20
- *
21
- * @example
22
- *
23
- * isCollection([ 1, 2, 3 ]) // true
24
- * isCollection('ABC') // false
25
- * isCollection({ length: 1, 0: 'Alpha' }) // true
26
- * isCollection({ key: 'value' }) // false
27
- * isCollection(new Map()) // true
28
- *
29
- * @param obj
30
- * An Object value which might implement the Iterable or Array-like protocols.
31
- * @return {boolean} true if Iterable or Array-like Object.
32
- */
33
- function isCollection(obj) {
34
- if (obj == null || _typeof(obj) !== 'object') {
35
- return false;
36
- } // Is Array like?
37
-
38
-
39
- var length = obj.length;
40
-
41
- if (typeof length === 'number' && length >= 0 && length % 1 === 0) {
42
- return true;
43
- } // Is Iterable?
44
-
45
-
46
- return typeof obj[_symbols.SYMBOL_ITERATOR] === 'function';
47
- }
@@ -1,39 +0,0 @@
1
- // @flow strict
2
-
3
- import { SYMBOL_ITERATOR } from '../polyfills/symbols';
4
-
5
- /**
6
- * Returns true if the provided object is an Object (i.e. not a string literal)
7
- * and is either Iterable or Array-like.
8
- *
9
- * This may be used in place of [Array.isArray()][isArray] to determine if an
10
- * object should be iterated-over. It always excludes string literals and
11
- * includes Arrays (regardless of if it is Iterable). It also includes other
12
- * Array-like objects such as NodeList, TypedArray, and Buffer.
13
- *
14
- * @example
15
- *
16
- * isCollection([ 1, 2, 3 ]) // true
17
- * isCollection('ABC') // false
18
- * isCollection({ length: 1, 0: 'Alpha' }) // true
19
- * isCollection({ key: 'value' }) // false
20
- * isCollection(new Map()) // true
21
- *
22
- * @param obj
23
- * An Object value which might implement the Iterable or Array-like protocols.
24
- * @return {boolean} true if Iterable or Array-like Object.
25
- */
26
- export default function isCollection(obj: mixed): boolean {
27
- if (obj == null || typeof obj !== 'object') {
28
- return false;
29
- }
30
-
31
- // Is Array like?
32
- const length = obj.length;
33
- if (typeof length === 'number' && length >= 0 && length % 1 === 0) {
34
- return true;
35
- }
36
-
37
- // Is Iterable?
38
- return typeof obj[SYMBOL_ITERATOR] === 'function';
39
- }
@@ -1,40 +0,0 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
2
-
3
- import { SYMBOL_ITERATOR } from "../polyfills/symbols.mjs";
4
- /**
5
- * Returns true if the provided object is an Object (i.e. not a string literal)
6
- * and is either Iterable or Array-like.
7
- *
8
- * This may be used in place of [Array.isArray()][isArray] to determine if an
9
- * object should be iterated-over. It always excludes string literals and
10
- * includes Arrays (regardless of if it is Iterable). It also includes other
11
- * Array-like objects such as NodeList, TypedArray, and Buffer.
12
- *
13
- * @example
14
- *
15
- * isCollection([ 1, 2, 3 ]) // true
16
- * isCollection('ABC') // false
17
- * isCollection({ length: 1, 0: 'Alpha' }) // true
18
- * isCollection({ key: 'value' }) // false
19
- * isCollection(new Map()) // true
20
- *
21
- * @param obj
22
- * An Object value which might implement the Iterable or Array-like protocols.
23
- * @return {boolean} true if Iterable or Array-like Object.
24
- */
25
-
26
- export default function isCollection(obj) {
27
- if (obj == null || _typeof(obj) !== 'object') {
28
- return false;
29
- } // Is Array like?
30
-
31
-
32
- var length = obj.length;
33
-
34
- if (typeof length === 'number' && length >= 0 && length % 1 === 0) {
35
- return true;
36
- } // Is Iterable?
37
-
38
-
39
- return typeof obj[SYMBOL_ITERATOR] === 'function';
40
- }
@@ -1,30 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var flatMapMethod = Array.prototype.flatMap;
8
- /* eslint-disable no-redeclare */
9
- // $FlowFixMe
10
-
11
- var flatMap = flatMapMethod ? function (list, fn) {
12
- return flatMapMethod.call(list, fn);
13
- } : function (list, fn) {
14
- var result = [];
15
-
16
- for (var _i2 = 0; _i2 < list.length; _i2++) {
17
- var _item = list[_i2];
18
- var value = fn(_item);
19
-
20
- if (Array.isArray(value)) {
21
- result = result.concat(value);
22
- } else {
23
- result.push(value);
24
- }
25
- }
26
-
27
- return result;
28
- };
29
- var _default = flatMap;
30
- exports.default = _default;
@@ -1,28 +0,0 @@
1
- // @flow strict
2
-
3
- declare function flatMap<T, U>(
4
- list: $ReadOnlyArray<T>,
5
- fn: (item: T, index: number) => $ReadOnlyArray<U> | U,
6
- ): Array<U>;
7
-
8
- const flatMapMethod = Array.prototype.flatMap;
9
-
10
- /* eslint-disable no-redeclare */
11
- // $FlowFixMe
12
- const flatMap = flatMapMethod
13
- ? function (list, fn) {
14
- return flatMapMethod.call(list, fn);
15
- }
16
- : function (list, fn) {
17
- let result = [];
18
- for (const item of list) {
19
- const value = fn(item);
20
- if (Array.isArray(value)) {
21
- result = result.concat(value);
22
- } else {
23
- result.push(value);
24
- }
25
- }
26
- return result;
27
- };
28
- export default flatMap;
@@ -1,23 +0,0 @@
1
- var flatMapMethod = Array.prototype.flatMap;
2
- /* eslint-disable no-redeclare */
3
- // $FlowFixMe
4
-
5
- var flatMap = flatMapMethod ? function (list, fn) {
6
- return flatMapMethod.call(list, fn);
7
- } : function (list, fn) {
8
- var result = [];
9
-
10
- for (var _i2 = 0; _i2 < list.length; _i2++) {
11
- var _item = list[_i2];
12
- var value = fn(_item);
13
-
14
- if (Array.isArray(value)) {
15
- result = result.concat(value);
16
- } else {
17
- result.push(value);
18
- }
19
- }
20
-
21
- return result;
22
- };
23
- export default flatMap;