graphql 14.0.0 → 14.1.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 (285) hide show
  1. package/README.md +4 -4
  2. package/error/GraphQLError.js +1 -1
  3. package/error/GraphQLError.js.flow +3 -3
  4. package/error/GraphQLError.mjs +1 -1
  5. package/error/formatError.js +1 -1
  6. package/error/formatError.mjs +1 -1
  7. package/error/index.mjs +1 -1
  8. package/error/locatedError.js +1 -1
  9. package/error/locatedError.mjs +1 -1
  10. package/error/printError.js +1 -1
  11. package/error/printError.mjs +1 -1
  12. package/error/syntaxError.js +1 -1
  13. package/error/syntaxError.mjs +1 -1
  14. package/execution/execute.js +4 -4
  15. package/execution/execute.js.flow +4 -6
  16. package/execution/execute.mjs +5 -5
  17. package/execution/index.mjs +1 -1
  18. package/execution/values.js +4 -4
  19. package/execution/values.js.flow +3 -3
  20. package/execution/values.mjs +3 -3
  21. package/graphql.js +1 -1
  22. package/graphql.mjs +1 -1
  23. package/index.js +12 -0
  24. package/index.js.flow +4 -0
  25. package/index.mjs +4 -4
  26. package/jsutils/dedent.js +2 -2
  27. package/jsutils/dedent.js.flow +1 -1
  28. package/jsutils/dedent.mjs +2 -2
  29. package/jsutils/defineToJSON.js +17 -6
  30. package/jsutils/defineToJSON.js.flow +14 -5
  31. package/jsutils/defineToJSON.mjs +14 -6
  32. package/jsutils/defineToStringTag.js +5 -5
  33. package/jsutils/defineToStringTag.js.flow +3 -3
  34. package/jsutils/defineToStringTag.mjs +4 -4
  35. package/jsutils/inspect.js +46 -12
  36. package/jsutils/inspect.js.flow +42 -15
  37. package/jsutils/inspect.mjs +45 -5
  38. package/jsutils/instanceOf.js +1 -1
  39. package/jsutils/instanceOf.mjs +1 -1
  40. package/jsutils/invariant.js +1 -1
  41. package/jsutils/invariant.mjs +1 -1
  42. package/jsutils/isInvalid.js +1 -1
  43. package/jsutils/isInvalid.mjs +1 -1
  44. package/jsutils/isNullish.js +1 -1
  45. package/jsutils/isNullish.mjs +1 -1
  46. package/jsutils/isPromise.js +1 -1
  47. package/jsutils/isPromise.mjs +1 -1
  48. package/jsutils/keyMap.js +1 -1
  49. package/jsutils/keyMap.mjs +1 -1
  50. package/jsutils/keyValMap.js +1 -1
  51. package/jsutils/keyValMap.mjs +1 -1
  52. package/jsutils/mapValue.js +54 -0
  53. package/jsutils/mapValue.js.flow +27 -0
  54. package/jsutils/mapValue.mjs +44 -0
  55. package/jsutils/memoize3.js +1 -1
  56. package/jsutils/memoize3.mjs +1 -1
  57. package/jsutils/nodejsCustomInspectSymbol.js +18 -0
  58. package/jsutils/nodejsCustomInspectSymbol.js.flow +15 -0
  59. package/jsutils/nodejsCustomInspectSymbol.mjs +10 -0
  60. package/jsutils/orList.js +17 -4
  61. package/jsutils/orList.js.flow +13 -7
  62. package/jsutils/orList.mjs +14 -4
  63. package/jsutils/promiseForObject.js +1 -1
  64. package/jsutils/promiseForObject.mjs +1 -1
  65. package/jsutils/promiseReduce.js +1 -1
  66. package/jsutils/promiseReduce.mjs +1 -1
  67. package/jsutils/quotedOrList.js +1 -1
  68. package/jsutils/quotedOrList.mjs +1 -1
  69. package/jsutils/suggestionList.js +1 -1
  70. package/jsutils/suggestionList.mjs +1 -1
  71. package/language/blockStringValue.js +2 -2
  72. package/language/blockStringValue.js.flow +1 -1
  73. package/language/blockStringValue.mjs +2 -2
  74. package/language/directiveLocation.js +1 -1
  75. package/language/directiveLocation.mjs +1 -1
  76. package/language/index.mjs +1 -1
  77. package/language/kinds.js +1 -1
  78. package/language/kinds.mjs +1 -1
  79. package/language/lexer.js +29 -13
  80. package/language/lexer.js.flow +34 -20
  81. package/language/lexer.mjs +28 -13
  82. package/language/location.js +1 -1
  83. package/language/location.mjs +1 -1
  84. package/language/parser.js +31 -38
  85. package/language/parser.js.flow +32 -48
  86. package/language/parser.mjs +30 -38
  87. package/language/predicates.js +1 -1
  88. package/language/predicates.mjs +1 -1
  89. package/language/printer.js +13 -7
  90. package/language/printer.js.flow +19 -9
  91. package/language/printer.mjs +13 -7
  92. package/language/source.js +8 -7
  93. package/language/source.mjs +1 -9
  94. package/language/visitor.js +11 -20
  95. package/language/visitor.js.flow +4 -5
  96. package/language/visitor.mjs +8 -20
  97. package/package.json +10 -3
  98. package/polyfills/find.js +31 -0
  99. package/polyfills/find.js.flow +29 -0
  100. package/polyfills/find.mjs +23 -0
  101. package/{jsutils → polyfills}/isFinite.js +1 -1
  102. package/{jsutils → polyfills}/isFinite.js.flow +0 -0
  103. package/{jsutils → polyfills}/isFinite.mjs +1 -1
  104. package/{jsutils → polyfills}/isInteger.js +1 -1
  105. package/{jsutils → polyfills}/isInteger.js.flow +0 -0
  106. package/{jsutils → polyfills}/isInteger.mjs +1 -1
  107. package/polyfills/objectEntries.js +26 -0
  108. package/polyfills/objectEntries.js.flow +19 -0
  109. package/polyfills/objectEntries.mjs +18 -0
  110. package/{jsutils → polyfills}/objectValues.js +1 -1
  111. package/{jsutils → polyfills}/objectValues.js.flow +1 -1
  112. package/{jsutils → polyfills}/objectValues.mjs +1 -1
  113. package/subscription/asyncIteratorReject.mjs +1 -1
  114. package/subscription/index.mjs +1 -1
  115. package/subscription/mapAsyncIterator.mjs +1 -1
  116. package/subscription/subscribe.js +1 -1
  117. package/subscription/subscribe.js.flow +1 -1
  118. package/subscription/subscribe.mjs +2 -2
  119. package/type/definition.js +31 -130
  120. package/type/definition.js.flow +35 -47
  121. package/type/definition.mjs +30 -131
  122. package/type/directives.js +25 -29
  123. package/type/directives.js.flow +24 -20
  124. package/type/directives.mjs +22 -30
  125. package/type/index.js +12 -0
  126. package/type/index.js.flow +4 -0
  127. package/type/index.mjs +5 -3
  128. package/type/introspection.js +3 -3
  129. package/type/introspection.js.flow +1 -1
  130. package/type/introspection.mjs +2 -2
  131. package/type/scalars.js +45 -34
  132. package/type/scalars.js.flow +40 -26
  133. package/type/scalars.mjs +44 -26
  134. package/type/schema.js +82 -87
  135. package/type/schema.js.flow +17 -9
  136. package/type/schema.mjs +79 -86
  137. package/type/validate.js +168 -175
  138. package/type/validate.js.flow +8 -49
  139. package/type/validate.mjs +159 -175
  140. package/utilities/TypeInfo.js +10 -23
  141. package/utilities/TypeInfo.js.flow +1 -1
  142. package/utilities/TypeInfo.mjs +2 -24
  143. package/utilities/assertValidName.js +1 -1
  144. package/utilities/assertValidName.mjs +1 -1
  145. package/utilities/astFromValue.js +2 -2
  146. package/utilities/astFromValue.js.flow +1 -1
  147. package/utilities/astFromValue.mjs +2 -2
  148. package/utilities/buildASTSchema.js +169 -152
  149. package/utilities/buildASTSchema.js.flow +117 -113
  150. package/utilities/buildASTSchema.mjs +160 -152
  151. package/utilities/buildClientSchema.js +24 -14
  152. package/utilities/buildClientSchema.js.flow +24 -14
  153. package/utilities/buildClientSchema.mjs +23 -14
  154. package/utilities/coerceValue.js +38 -19
  155. package/utilities/coerceValue.js.flow +41 -47
  156. package/utilities/coerceValue.mjs +38 -20
  157. package/utilities/concatAST.js +1 -1
  158. package/utilities/concatAST.mjs +1 -1
  159. package/utilities/extendSchema.js +228 -312
  160. package/utilities/extendSchema.js.flow +27 -152
  161. package/utilities/extendSchema.mjs +229 -312
  162. package/utilities/findBreakingChanges.js +7 -5
  163. package/utilities/findBreakingChanges.js.flow +3 -2
  164. package/utilities/findBreakingChanges.mjs +6 -5
  165. package/utilities/findDeprecatedUsages.js +1 -1
  166. package/utilities/findDeprecatedUsages.mjs +1 -1
  167. package/utilities/getOperationAST.js +1 -1
  168. package/utilities/getOperationAST.mjs +1 -1
  169. package/utilities/getOperationRootType.js +1 -1
  170. package/utilities/getOperationRootType.mjs +1 -1
  171. package/utilities/index.mjs +1 -1
  172. package/utilities/introspectionFromSchema.js +1 -1
  173. package/utilities/introspectionFromSchema.mjs +1 -1
  174. package/utilities/introspectionQuery.js +1 -1
  175. package/utilities/introspectionQuery.mjs +1 -1
  176. package/utilities/isValidJSValue.js +1 -1
  177. package/utilities/isValidJSValue.mjs +1 -1
  178. package/utilities/isValidLiteralValue.js +1 -1
  179. package/utilities/isValidLiteralValue.mjs +1 -1
  180. package/utilities/lexicographicSortSchema.js +2 -2
  181. package/utilities/lexicographicSortSchema.js.flow +1 -1
  182. package/utilities/lexicographicSortSchema.mjs +2 -2
  183. package/utilities/schemaPrinter.js +3 -3
  184. package/utilities/schemaPrinter.js.flow +1 -1
  185. package/utilities/schemaPrinter.mjs +2 -2
  186. package/utilities/separateOperations.js +1 -1
  187. package/utilities/separateOperations.mjs +1 -1
  188. package/utilities/typeComparators.js +1 -1
  189. package/utilities/typeComparators.mjs +1 -1
  190. package/utilities/typeFromAST.js +1 -1
  191. package/utilities/typeFromAST.mjs +1 -1
  192. package/utilities/valueFromAST.js +3 -3
  193. package/utilities/valueFromAST.js.flow +1 -1
  194. package/utilities/valueFromAST.mjs +2 -2
  195. package/utilities/valueFromASTUntyped.js +1 -1
  196. package/utilities/valueFromASTUntyped.mjs +1 -1
  197. package/validation/ValidationContext.js +57 -82
  198. package/validation/ValidationContext.js.flow +52 -49
  199. package/validation/ValidationContext.mjs +52 -77
  200. package/validation/index.js.flow +1 -0
  201. package/validation/index.mjs +1 -1
  202. package/validation/rules/ExecutableDefinitions.js +1 -1
  203. package/validation/rules/ExecutableDefinitions.js.flow +1 -1
  204. package/validation/rules/ExecutableDefinitions.mjs +1 -1
  205. package/validation/rules/FieldsOnCorrectType.js +1 -1
  206. package/validation/rules/FieldsOnCorrectType.mjs +1 -1
  207. package/validation/rules/FragmentsOnCompositeTypes.js +1 -1
  208. package/validation/rules/FragmentsOnCompositeTypes.mjs +1 -1
  209. package/validation/rules/KnownArgumentNames.mjs +1 -1
  210. package/validation/rules/KnownDirectives.js +1 -1
  211. package/validation/rules/KnownDirectives.mjs +1 -1
  212. package/validation/rules/KnownFragmentNames.js +1 -1
  213. package/validation/rules/KnownFragmentNames.mjs +1 -1
  214. package/validation/rules/KnownTypeNames.js +59 -21
  215. package/validation/rules/KnownTypeNames.js.flow +54 -20
  216. package/validation/rules/KnownTypeNames.mjs +56 -21
  217. package/validation/rules/LoneAnonymousOperation.js +1 -1
  218. package/validation/rules/LoneAnonymousOperation.mjs +1 -1
  219. package/validation/rules/LoneSchemaDefinition.js +1 -1
  220. package/validation/rules/LoneSchemaDefinition.mjs +1 -1
  221. package/validation/rules/NoFragmentCycles.js +1 -1
  222. package/validation/rules/NoFragmentCycles.js.flow +2 -2
  223. package/validation/rules/NoFragmentCycles.mjs +1 -1
  224. package/validation/rules/NoUndefinedVariables.js +1 -1
  225. package/validation/rules/NoUndefinedVariables.mjs +1 -1
  226. package/validation/rules/NoUnusedFragments.js +1 -1
  227. package/validation/rules/NoUnusedFragments.js.flow +2 -2
  228. package/validation/rules/NoUnusedFragments.mjs +1 -1
  229. package/validation/rules/NoUnusedVariables.js +1 -1
  230. package/validation/rules/NoUnusedVariables.mjs +1 -1
  231. package/validation/rules/OverlappingFieldsCanBeMerged.js +57 -33
  232. package/validation/rules/OverlappingFieldsCanBeMerged.js.flow +5 -6
  233. package/validation/rules/OverlappingFieldsCanBeMerged.mjs +48 -33
  234. package/validation/rules/PossibleFragmentSpreads.js +1 -1
  235. package/validation/rules/PossibleFragmentSpreads.mjs +1 -1
  236. package/validation/rules/PossibleTypeExtensions.js +158 -0
  237. package/validation/rules/PossibleTypeExtensions.js.flow +160 -0
  238. package/validation/rules/PossibleTypeExtensions.mjs +146 -0
  239. package/validation/rules/ProvidedRequiredArguments.mjs +1 -1
  240. package/validation/rules/ScalarLeafs.js +1 -1
  241. package/validation/rules/ScalarLeafs.mjs +1 -1
  242. package/validation/rules/SingleFieldSubscriptions.js +1 -1
  243. package/validation/rules/SingleFieldSubscriptions.mjs +1 -1
  244. package/validation/rules/UniqueArgumentNames.js +1 -1
  245. package/validation/rules/UniqueArgumentNames.mjs +1 -1
  246. package/validation/rules/UniqueDirectiveNames.js +55 -0
  247. package/validation/rules/UniqueDirectiveNames.js.flow +64 -0
  248. package/validation/rules/UniqueDirectiveNames.mjs +43 -0
  249. package/validation/rules/UniqueDirectivesPerLocation.js +1 -1
  250. package/validation/rules/UniqueDirectivesPerLocation.mjs +1 -1
  251. package/validation/rules/UniqueEnumValueNames.js +94 -0
  252. package/validation/rules/UniqueEnumValueNames.js.flow +87 -0
  253. package/validation/rules/UniqueEnumValueNames.mjs +81 -0
  254. package/validation/rules/UniqueFieldDefinitionNames.js +105 -0
  255. package/validation/rules/UniqueFieldDefinitionNames.js.flow +101 -0
  256. package/validation/rules/UniqueFieldDefinitionNames.mjs +92 -0
  257. package/validation/rules/UniqueFragmentNames.js +1 -1
  258. package/validation/rules/UniqueFragmentNames.mjs +1 -1
  259. package/validation/rules/UniqueInputFieldNames.js +1 -1
  260. package/validation/rules/UniqueInputFieldNames.mjs +1 -1
  261. package/validation/rules/UniqueOperationNames.js +1 -1
  262. package/validation/rules/UniqueOperationNames.mjs +1 -1
  263. package/validation/rules/UniqueOperationTypes.js +85 -0
  264. package/validation/rules/UniqueOperationTypes.js.flow +76 -0
  265. package/validation/rules/UniqueOperationTypes.mjs +73 -0
  266. package/validation/rules/UniqueTypeNames.js +62 -0
  267. package/validation/rules/UniqueTypeNames.js.flow +67 -0
  268. package/validation/rules/UniqueTypeNames.mjs +50 -0
  269. package/validation/rules/UniqueVariableNames.js +1 -1
  270. package/validation/rules/UniqueVariableNames.mjs +1 -1
  271. package/validation/rules/ValuesOfCorrectType.js +29 -13
  272. package/validation/rules/ValuesOfCorrectType.js.flow +4 -5
  273. package/validation/rules/ValuesOfCorrectType.mjs +28 -13
  274. package/validation/rules/VariablesAreInputTypes.js +1 -1
  275. package/validation/rules/VariablesAreInputTypes.mjs +1 -1
  276. package/validation/rules/VariablesInAllowedPosition.js +4 -4
  277. package/validation/rules/VariablesInAllowedPosition.mjs +4 -4
  278. package/validation/specifiedRules.js +14 -2
  279. package/validation/specifiedRules.js.flow +13 -0
  280. package/validation/specifiedRules.mjs +8 -2
  281. package/validation/validate.js +1 -1
  282. package/validation/validate.mjs +1 -1
  283. package/jsutils/find.js +0 -22
  284. package/jsutils/find.js.flow +0 -19
  285. package/jsutils/find.mjs +0 -15
@@ -8,16 +8,15 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
8
8
  * This source code is licensed under the MIT license found in the
9
9
  * LICENSE file in the root directory of this source tree.
10
10
  *
11
- * strict
11
+ *
12
12
  */
13
+ import objectValues from '../polyfills/objectValues';
13
14
  import invariant from '../jsutils/invariant';
14
- import keyMap from '../jsutils/keyMap';
15
+ import mapValue from '../jsutils/mapValue';
15
16
  import keyValMap from '../jsutils/keyValMap';
16
- import objectValues from '../jsutils/objectValues';
17
17
  import { ASTDefinitionBuilder } from './buildASTSchema';
18
18
  import { assertValidSDLExtension } from '../validation/validate';
19
- import { GraphQLError } from '../error/GraphQLError';
20
- import { isSchema, GraphQLSchema } from '../type/schema';
19
+ import { assertSchema, GraphQLSchema } from '../type/schema';
21
20
  import { isIntrospectionType } from '../type/introspection';
22
21
  import { isSpecifiedScalarType } from '../type/scalars';
23
22
  import { isScalarType, isObjectType, isInterfaceType, isUnionType, isListType, isNonNullType, isEnumType, isInputObjectType, GraphQLList, GraphQLNonNull, GraphQLScalarType, GraphQLObjectType, GraphQLInterfaceType, GraphQLUnionType, GraphQLEnumType, GraphQLInputObjectType } from '../type/definition';
@@ -44,7 +43,7 @@ import { isTypeDefinitionNode, isTypeExtensionNode } from '../language/predicate
44
43
  *
45
44
  */
46
45
  export function extendSchema(schema, documentAST, options) {
47
- !isSchema(schema) ? invariant(0, 'Must provide valid GraphQLSchema') : void 0;
46
+ assertSchema(schema);
48
47
  !(documentAST && documentAST.kind === Kind.DOCUMENT) ? invariant(0, 'Must provide valid Document AST') : void 0;
49
48
 
50
49
  if (!options || !(options.assumeValid || options.assumeValidSDL)) {
@@ -60,64 +59,54 @@ export function extendSchema(schema, documentAST, options) {
60
59
  var schemaDef; // Schema extensions are collected which may add additional operation types.
61
60
 
62
61
  var schemaExtensions = [];
63
-
64
- for (var i = 0; i < documentAST.definitions.length; i++) {
65
- var def = documentAST.definitions[i];
66
-
67
- if (def.kind === Kind.SCHEMA_DEFINITION) {
68
- schemaDef = def;
69
- } else if (def.kind === Kind.SCHEMA_EXTENSION) {
70
- schemaExtensions.push(def);
71
- } else if (isTypeDefinitionNode(def)) {
72
- // Sanity check that none of the defined types conflict with the
73
- // schema's existing types.
74
- var typeName = def.name.value;
75
-
76
- if (schema.getType(typeName)) {
77
- throw new GraphQLError("Type \"".concat(typeName, "\" already exists in the schema. It cannot also ") + 'be defined in this type definition.', [def]);
62
+ var _iteratorNormalCompletion = true;
63
+ var _didIteratorError = false;
64
+ var _iteratorError = undefined;
65
+
66
+ try {
67
+ for (var _iterator = documentAST.definitions[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
68
+ var def = _step.value;
69
+
70
+ if (def.kind === Kind.SCHEMA_DEFINITION) {
71
+ schemaDef = def;
72
+ } else if (def.kind === Kind.SCHEMA_EXTENSION) {
73
+ schemaExtensions.push(def);
74
+ } else if (isTypeDefinitionNode(def)) {
75
+ var typeName = def.name.value;
76
+ typeDefinitionMap[typeName] = def;
77
+ } else if (isTypeExtensionNode(def)) {
78
+ var extendedTypeName = def.name.value;
79
+ var existingTypeExtensions = typeExtensionsMap[extendedTypeName];
80
+ typeExtensionsMap[extendedTypeName] = existingTypeExtensions ? existingTypeExtensions.concat([def]) : [def];
81
+ } else if (def.kind === Kind.DIRECTIVE_DEFINITION) {
82
+ directiveDefinitions.push(def);
78
83
  }
84
+ } // If this document contains no new types, extensions, or directives then
85
+ // return the same unmodified GraphQLSchema instance.
79
86
 
80
- typeDefinitionMap[typeName] = def;
81
- } else if (isTypeExtensionNode(def)) {
82
- // Sanity check that this type extension exists within the
83
- // schema's existing types.
84
- var extendedTypeName = def.name.value;
85
- var existingType = schema.getType(extendedTypeName);
86
-
87
- if (!existingType) {
88
- throw new GraphQLError("Cannot extend type \"".concat(extendedTypeName, "\" because it does not ") + 'exist in the existing schema.', [def]);
87
+ } catch (err) {
88
+ _didIteratorError = true;
89
+ _iteratorError = err;
90
+ } finally {
91
+ try {
92
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
93
+ _iterator.return();
89
94
  }
90
-
91
- checkExtensionNode(existingType, def);
92
- var existingTypeExtensions = typeExtensionsMap[extendedTypeName];
93
- typeExtensionsMap[extendedTypeName] = existingTypeExtensions ? existingTypeExtensions.concat([def]) : [def];
94
- } else if (def.kind === Kind.DIRECTIVE_DEFINITION) {
95
- var directiveName = def.name.value;
96
- var existingDirective = schema.getDirective(directiveName);
97
-
98
- if (existingDirective) {
99
- throw new GraphQLError("Directive \"".concat(directiveName, "\" already exists in the schema. It ") + 'cannot be redefined.', [def]);
95
+ } finally {
96
+ if (_didIteratorError) {
97
+ throw _iteratorError;
100
98
  }
101
-
102
- directiveDefinitions.push(def);
103
99
  }
104
- } // If this document contains no new types, extensions, or directives then
105
- // return the same unmodified GraphQLSchema instance.
106
-
100
+ }
107
101
 
108
102
  if (Object.keys(typeExtensionsMap).length === 0 && Object.keys(typeDefinitionMap).length === 0 && directiveDefinitions.length === 0 && schemaExtensions.length === 0 && !schemaDef) {
109
103
  return schema;
110
104
  }
111
105
 
112
- var astBuilder = new ASTDefinitionBuilder(typeDefinitionMap, options, function (typeRef) {
113
- var typeName = typeRef.name.value;
106
+ var astBuilder = new ASTDefinitionBuilder(typeDefinitionMap, options, function (typeName) {
114
107
  var existingType = schema.getType(typeName);
115
-
116
- if (existingType) {
117
- return extendNamedType(existingType);
118
- }
119
-
120
- throw new GraphQLError("Unknown type: \"".concat(typeName, "\". Ensure that this type exists ") + 'either in the original schema, or is added in a type definition.', [typeRef]);
108
+ !existingType ? invariant(0, "Unknown type: \"".concat(typeName, "\".")) : void 0;
109
+ return extendNamedType(existingType);
121
110
  });
122
111
  var extendTypeCache = Object.create(null); // Get the extended root operation types.
123
112
 
@@ -128,36 +117,31 @@ export function extendSchema(schema, documentAST, options) {
128
117
  };
129
118
 
130
119
  if (schemaDef) {
131
- var _iteratorNormalCompletion = true;
132
- var _didIteratorError = false;
133
- var _iteratorError = undefined;
120
+ var _iteratorNormalCompletion2 = true;
121
+ var _didIteratorError2 = false;
122
+ var _iteratorError2 = undefined;
134
123
 
135
124
  try {
136
- for (var _iterator = schemaDef.operationTypes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
137
- var _ref2 = _step.value;
138
- var operation = _ref2.operation,
139
- type = _ref2.type;
140
-
141
- if (operationTypes[operation]) {
142
- throw new Error("Must provide only one ".concat(operation, " type in schema."));
143
- } // Note: While this could make early assertions to get the correctly
125
+ for (var _iterator2 = schemaDef.operationTypes[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
126
+ var _ref2 = _step2.value;
127
+ var operation = _ref2.operation;
128
+ var type = _ref2.type;
129
+ // Note: While this could make early assertions to get the correctly
144
130
  // typed values, that would throw immediately while type system
145
131
  // validation with validateSchema() will produce more actionable results.
146
-
147
-
148
132
  operationTypes[operation] = astBuilder.buildType(type);
149
133
  }
150
134
  } catch (err) {
151
- _didIteratorError = true;
152
- _iteratorError = err;
135
+ _didIteratorError2 = true;
136
+ _iteratorError2 = err;
153
137
  } finally {
154
138
  try {
155
- if (!_iteratorNormalCompletion && _iterator.return != null) {
156
- _iterator.return();
139
+ if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
140
+ _iterator2.return();
157
141
  }
158
142
  } finally {
159
- if (_didIteratorError) {
160
- throw _iteratorError;
143
+ if (_didIteratorError2) {
144
+ throw _iteratorError2;
161
145
  }
162
146
  }
163
147
  }
@@ -168,36 +152,31 @@ export function extendSchema(schema, documentAST, options) {
168
152
  var schemaExtension = schemaExtensions[_i];
169
153
 
170
154
  if (schemaExtension.operationTypes) {
171
- var _iteratorNormalCompletion12 = true;
172
- var _didIteratorError12 = false;
173
- var _iteratorError12 = undefined;
155
+ var _iteratorNormalCompletion14 = true;
156
+ var _didIteratorError14 = false;
157
+ var _iteratorError14 = undefined;
174
158
 
175
159
  try {
176
- for (var _iterator12 = schemaExtension.operationTypes[Symbol.iterator](), _step12; !(_iteratorNormalCompletion12 = (_step12 = _iterator12.next()).done); _iteratorNormalCompletion12 = true) {
177
- var _ref4 = _step12.value;
178
- var operation = _ref4.operation,
179
- type = _ref4.type;
180
-
181
- if (operationTypes[operation]) {
182
- throw new Error("Must provide only one ".concat(operation, " type in schema."));
183
- } // Note: While this could make early assertions to get the correctly
160
+ for (var _iterator14 = schemaExtension.operationTypes[Symbol.iterator](), _step14; !(_iteratorNormalCompletion14 = (_step14 = _iterator14.next()).done); _iteratorNormalCompletion14 = true) {
161
+ var _ref4 = _step14.value;
162
+ var _operation = _ref4.operation;
163
+ var _type = _ref4.type;
164
+ // Note: While this could make early assertions to get the correctly
184
165
  // typed values, that would throw immediately while type system
185
166
  // validation with validateSchema() will produce more actionable results.
186
-
187
-
188
- operationTypes[operation] = astBuilder.buildType(type);
167
+ operationTypes[_operation] = astBuilder.buildType(_type);
189
168
  }
190
169
  } catch (err) {
191
- _didIteratorError12 = true;
192
- _iteratorError12 = err;
170
+ _didIteratorError14 = true;
171
+ _iteratorError14 = err;
193
172
  } finally {
194
173
  try {
195
- if (!_iteratorNormalCompletion12 && _iterator12.return != null) {
196
- _iterator12.return();
174
+ if (!_iteratorNormalCompletion14 && _iterator14.return != null) {
175
+ _iterator14.return();
197
176
  }
198
177
  } finally {
199
- if (_didIteratorError12) {
200
- throw _iteratorError12;
178
+ if (_didIteratorError14) {
179
+ throw _iteratorError14;
201
180
  }
202
181
  }
203
182
  }
@@ -205,9 +184,9 @@ export function extendSchema(schema, documentAST, options) {
205
184
  }
206
185
 
207
186
  var schemaExtensionASTNodes = schemaExtensions ? schema.extensionASTNodes ? schema.extensionASTNodes.concat(schemaExtensions) : schemaExtensions : schema.extensionASTNodes;
208
- var types = objectValues(schema.getTypeMap()).map(function (type) {
187
+ var types = [].concat(objectValues(schema.getTypeMap()).map(function (type) {
209
188
  return extendNamedType(type);
210
- }).concat(objectValues(typeDefinitionMap).map(function (type) {
189
+ }), objectValues(typeDefinitionMap).map(function (type) {
211
190
  return astBuilder.buildType(type);
212
191
  })); // Support both original legacy names and extended legacy names.
213
192
 
@@ -287,74 +266,60 @@ export function extendSchema(schema, documentAST, options) {
287
266
  }
288
267
 
289
268
  function extendInputFieldMap(type) {
290
- var newFieldMap = Object.create(null);
291
- var oldFieldMap = type.getFields();
292
-
293
- var _arr = Object.keys(oldFieldMap);
294
-
295
- for (var _i2 = 0; _i2 < _arr.length; _i2++) {
296
- var _fieldName = _arr[_i2];
297
- var _field = oldFieldMap[_fieldName];
298
- newFieldMap[_fieldName] = {
299
- description: _field.description,
300
- type: extendType(_field.type),
301
- defaultValue: _field.defaultValue,
302
- astNode: _field.astNode
269
+ var newFieldMap = mapValue(type.getFields(), function (field) {
270
+ return {
271
+ description: field.description,
272
+ type: extendType(field.type),
273
+ defaultValue: field.defaultValue,
274
+ astNode: field.astNode
303
275
  };
304
- } // If there are any extensions to the fields, apply those here.
305
-
276
+ }); // If there are any extensions to the fields, apply those here.
306
277
 
307
278
  var extensions = typeExtensionsMap[type.name];
308
279
 
309
280
  if (extensions) {
310
- var _iteratorNormalCompletion2 = true;
311
- var _didIteratorError2 = false;
312
- var _iteratorError2 = undefined;
281
+ var _iteratorNormalCompletion3 = true;
282
+ var _didIteratorError3 = false;
283
+ var _iteratorError3 = undefined;
313
284
 
314
285
  try {
315
- for (var _iterator2 = extensions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
316
- var extension = _step2.value;
317
- var _iteratorNormalCompletion3 = true;
318
- var _didIteratorError3 = false;
319
- var _iteratorError3 = undefined;
286
+ for (var _iterator3 = extensions[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
287
+ var extension = _step3.value;
288
+ var _iteratorNormalCompletion4 = true;
289
+ var _didIteratorError4 = false;
290
+ var _iteratorError4 = undefined;
320
291
 
321
292
  try {
322
- for (var _iterator3 = extension.fields[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
323
- var field = _step3.value;
324
- var fieldName = field.name.value;
325
-
326
- if (oldFieldMap[fieldName]) {
327
- throw new GraphQLError("Field \"".concat(type.name, ".").concat(fieldName, "\" already exists in the ") + 'schema. It cannot also be defined in this type extension.', [field]);
328
- }
329
-
330
- newFieldMap[fieldName] = astBuilder.buildInputField(field);
293
+ for (var _iterator4 = extension.fields[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
294
+ var field = _step4.value;
295
+ newFieldMap[field.name.value] = astBuilder.buildInputField(field);
331
296
  }
332
297
  } catch (err) {
333
- _didIteratorError3 = true;
334
- _iteratorError3 = err;
298
+ _didIteratorError4 = true;
299
+ _iteratorError4 = err;
335
300
  } finally {
336
301
  try {
337
- if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
338
- _iterator3.return();
302
+ if (!_iteratorNormalCompletion4 && _iterator4.return != null) {
303
+ _iterator4.return();
339
304
  }
340
305
  } finally {
341
- if (_didIteratorError3) {
342
- throw _iteratorError3;
306
+ if (_didIteratorError4) {
307
+ throw _iteratorError4;
343
308
  }
344
309
  }
345
310
  }
346
311
  }
347
312
  } catch (err) {
348
- _didIteratorError2 = true;
349
- _iteratorError2 = err;
313
+ _didIteratorError3 = true;
314
+ _iteratorError3 = err;
350
315
  } finally {
351
316
  try {
352
- if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
353
- _iterator2.return();
317
+ if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
318
+ _iterator3.return();
354
319
  }
355
320
  } finally {
356
- if (_didIteratorError2) {
357
- throw _iteratorError2;
321
+ if (_didIteratorError3) {
322
+ throw _iteratorError3;
358
323
  }
359
324
  }
360
325
  }
@@ -377,76 +342,81 @@ export function extendSchema(schema, documentAST, options) {
377
342
 
378
343
  function extendValueMap(type) {
379
344
  var newValueMap = Object.create(null);
380
- var oldValueMap = keyMap(type.getValues(), function (value) {
381
- return value.name;
382
- });
345
+ var _iteratorNormalCompletion5 = true;
346
+ var _didIteratorError5 = false;
347
+ var _iteratorError5 = undefined;
383
348
 
384
- var _arr2 = Object.keys(oldValueMap);
385
-
386
- for (var _i3 = 0; _i3 < _arr2.length; _i3++) {
387
- var _valueName = _arr2[_i3];
388
- var _value = oldValueMap[_valueName];
389
- newValueMap[_valueName] = {
390
- name: _value.name,
391
- description: _value.description,
392
- value: _value.value,
393
- deprecationReason: _value.deprecationReason,
394
- astNode: _value.astNode
395
- };
396
- } // If there are any extensions to the values, apply those here.
349
+ try {
350
+ for (var _iterator5 = type.getValues()[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {
351
+ var _value = _step5.value;
352
+ newValueMap[_value.name] = {
353
+ description: _value.description,
354
+ value: _value.value,
355
+ deprecationReason: _value.deprecationReason,
356
+ astNode: _value.astNode
357
+ };
358
+ } // If there are any extensions to the values, apply those here.
397
359
 
360
+ } catch (err) {
361
+ _didIteratorError5 = true;
362
+ _iteratorError5 = err;
363
+ } finally {
364
+ try {
365
+ if (!_iteratorNormalCompletion5 && _iterator5.return != null) {
366
+ _iterator5.return();
367
+ }
368
+ } finally {
369
+ if (_didIteratorError5) {
370
+ throw _iteratorError5;
371
+ }
372
+ }
373
+ }
398
374
 
399
375
  var extensions = typeExtensionsMap[type.name];
400
376
 
401
377
  if (extensions) {
402
- var _iteratorNormalCompletion4 = true;
403
- var _didIteratorError4 = false;
404
- var _iteratorError4 = undefined;
378
+ var _iteratorNormalCompletion6 = true;
379
+ var _didIteratorError6 = false;
380
+ var _iteratorError6 = undefined;
405
381
 
406
382
  try {
407
- for (var _iterator4 = extensions[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
408
- var extension = _step4.value;
409
- var _iteratorNormalCompletion5 = true;
410
- var _didIteratorError5 = false;
411
- var _iteratorError5 = undefined;
383
+ for (var _iterator6 = extensions[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {
384
+ var extension = _step6.value;
385
+ var _iteratorNormalCompletion7 = true;
386
+ var _didIteratorError7 = false;
387
+ var _iteratorError7 = undefined;
412
388
 
413
389
  try {
414
- for (var _iterator5 = extension.values[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {
415
- var value = _step5.value;
416
- var valueName = value.name.value;
417
-
418
- if (oldValueMap[valueName]) {
419
- throw new GraphQLError("Enum value \"".concat(type.name, ".").concat(valueName, "\" already exists in the ") + 'schema. It cannot also be defined in this type extension.', [value]);
420
- }
421
-
422
- newValueMap[valueName] = astBuilder.buildEnumValue(value);
390
+ for (var _iterator7 = extension.values[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {
391
+ var value = _step7.value;
392
+ newValueMap[value.name.value] = astBuilder.buildEnumValue(value);
423
393
  }
424
394
  } catch (err) {
425
- _didIteratorError5 = true;
426
- _iteratorError5 = err;
395
+ _didIteratorError7 = true;
396
+ _iteratorError7 = err;
427
397
  } finally {
428
398
  try {
429
- if (!_iteratorNormalCompletion5 && _iterator5.return != null) {
430
- _iterator5.return();
399
+ if (!_iteratorNormalCompletion7 && _iterator7.return != null) {
400
+ _iterator7.return();
431
401
  }
432
402
  } finally {
433
- if (_didIteratorError5) {
434
- throw _iteratorError5;
403
+ if (_didIteratorError7) {
404
+ throw _iteratorError7;
435
405
  }
436
406
  }
437
407
  }
438
408
  }
439
409
  } catch (err) {
440
- _didIteratorError4 = true;
441
- _iteratorError4 = err;
410
+ _didIteratorError6 = true;
411
+ _iteratorError6 = err;
442
412
  } finally {
443
413
  try {
444
- if (!_iteratorNormalCompletion4 && _iterator4.return != null) {
445
- _iterator4.return();
414
+ if (!_iteratorNormalCompletion6 && _iterator6.return != null) {
415
+ _iterator6.return();
446
416
  }
447
417
  } finally {
448
- if (_didIteratorError4) {
449
- throw _iteratorError4;
418
+ if (_didIteratorError6) {
419
+ throw _iteratorError6;
450
420
  }
451
421
  }
452
422
  }
@@ -535,65 +505,6 @@ export function extendSchema(schema, documentAST, options) {
535
505
 
536
506
  var extensions = typeExtensionsMap[type.name];
537
507
 
538
- if (extensions) {
539
- var _iteratorNormalCompletion6 = true;
540
- var _didIteratorError6 = false;
541
- var _iteratorError6 = undefined;
542
-
543
- try {
544
- for (var _iterator6 = extensions[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {
545
- var extension = _step6.value;
546
- var _iteratorNormalCompletion7 = true;
547
- var _didIteratorError7 = false;
548
- var _iteratorError7 = undefined;
549
-
550
- try {
551
- for (var _iterator7 = extension.types[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {
552
- var namedType = _step7.value;
553
- // Note: While this could make early assertions to get the correctly
554
- // typed values, that would throw immediately while type system
555
- // validation with validateSchema() will produce more actionable results.
556
- possibleTypes.push(astBuilder.buildType(namedType));
557
- }
558
- } catch (err) {
559
- _didIteratorError7 = true;
560
- _iteratorError7 = err;
561
- } finally {
562
- try {
563
- if (!_iteratorNormalCompletion7 && _iterator7.return != null) {
564
- _iterator7.return();
565
- }
566
- } finally {
567
- if (_didIteratorError7) {
568
- throw _iteratorError7;
569
- }
570
- }
571
- }
572
- }
573
- } catch (err) {
574
- _didIteratorError6 = true;
575
- _iteratorError6 = err;
576
- } finally {
577
- try {
578
- if (!_iteratorNormalCompletion6 && _iterator6.return != null) {
579
- _iterator6.return();
580
- }
581
- } finally {
582
- if (_didIteratorError6) {
583
- throw _iteratorError6;
584
- }
585
- }
586
- }
587
- }
588
-
589
- return possibleTypes;
590
- }
591
-
592
- function extendImplementedInterfaces(type) {
593
- var interfaces = type.getInterfaces().map(extendNamedType); // If there are any extensions to the interfaces, apply those here.
594
-
595
- var extensions = typeExtensionsMap[type.name];
596
-
597
508
  if (extensions) {
598
509
  var _iteratorNormalCompletion8 = true;
599
510
  var _didIteratorError8 = false;
@@ -607,12 +518,12 @@ export function extendSchema(schema, documentAST, options) {
607
518
  var _iteratorError9 = undefined;
608
519
 
609
520
  try {
610
- for (var _iterator9 = extension.interfaces[Symbol.iterator](), _step9; !(_iteratorNormalCompletion9 = (_step9 = _iterator9.next()).done); _iteratorNormalCompletion9 = true) {
521
+ for (var _iterator9 = extension.types[Symbol.iterator](), _step9; !(_iteratorNormalCompletion9 = (_step9 = _iterator9.next()).done); _iteratorNormalCompletion9 = true) {
611
522
  var namedType = _step9.value;
612
523
  // Note: While this could make early assertions to get the correctly
613
524
  // typed values, that would throw immediately while type system
614
525
  // validation with validateSchema() will produce more actionable results.
615
- interfaces.push(astBuilder.buildType(namedType));
526
+ possibleTypes.push(astBuilder.buildType(namedType));
616
527
  }
617
528
  } catch (err) {
618
529
  _didIteratorError9 = true;
@@ -645,28 +556,11 @@ export function extendSchema(schema, documentAST, options) {
645
556
  }
646
557
  }
647
558
 
648
- return interfaces;
559
+ return possibleTypes;
649
560
  }
650
561
 
651
- function extendFieldMap(type) {
652
- var newFieldMap = Object.create(null);
653
- var oldFieldMap = type.getFields();
654
-
655
- var _arr3 = Object.keys(oldFieldMap);
656
-
657
- for (var _i4 = 0; _i4 < _arr3.length; _i4++) {
658
- var _fieldName2 = _arr3[_i4];
659
- var _field2 = oldFieldMap[_fieldName2];
660
- newFieldMap[_fieldName2] = {
661
- description: _field2.description,
662
- deprecationReason: _field2.deprecationReason,
663
- type: extendType(_field2.type),
664
- args: extendArgs(_field2.args),
665
- astNode: _field2.astNode,
666
- resolve: _field2.resolve
667
- };
668
- } // If there are any extensions to the fields, apply those here.
669
-
562
+ function extendImplementedInterfaces(type) {
563
+ var interfaces = type.getInterfaces().map(extendNamedType); // If there are any extensions to the interfaces, apply those here.
670
564
 
671
565
  var extensions = typeExtensionsMap[type.name];
672
566
 
@@ -683,15 +577,12 @@ export function extendSchema(schema, documentAST, options) {
683
577
  var _iteratorError11 = undefined;
684
578
 
685
579
  try {
686
- for (var _iterator11 = extension.fields[Symbol.iterator](), _step11; !(_iteratorNormalCompletion11 = (_step11 = _iterator11.next()).done); _iteratorNormalCompletion11 = true) {
687
- var field = _step11.value;
688
- var fieldName = field.name.value;
689
-
690
- if (oldFieldMap[fieldName]) {
691
- throw new GraphQLError("Field \"".concat(type.name, ".").concat(fieldName, "\" already exists in the ") + 'schema. It cannot also be defined in this type extension.', [field]);
692
- }
693
-
694
- newFieldMap[fieldName] = astBuilder.buildField(field);
580
+ for (var _iterator11 = extension.interfaces[Symbol.iterator](), _step11; !(_iteratorNormalCompletion11 = (_step11 = _iterator11.next()).done); _iteratorNormalCompletion11 = true) {
581
+ var namedType = _step11.value;
582
+ // Note: While this could make early assertions to get the correctly
583
+ // typed values, that would throw immediately while type system
584
+ // validation with validateSchema() will produce more actionable results.
585
+ interfaces.push(astBuilder.buildType(namedType));
695
586
  }
696
587
  } catch (err) {
697
588
  _didIteratorError11 = true;
@@ -724,6 +615,71 @@ export function extendSchema(schema, documentAST, options) {
724
615
  }
725
616
  }
726
617
 
618
+ return interfaces;
619
+ }
620
+
621
+ function extendFieldMap(type) {
622
+ var newFieldMap = mapValue(type.getFields(), function (field) {
623
+ return {
624
+ description: field.description,
625
+ deprecationReason: field.deprecationReason,
626
+ type: extendType(field.type),
627
+ args: extendArgs(field.args),
628
+ astNode: field.astNode,
629
+ resolve: field.resolve
630
+ };
631
+ }); // If there are any extensions to the fields, apply those here.
632
+
633
+ var extensions = typeExtensionsMap[type.name];
634
+
635
+ if (extensions) {
636
+ var _iteratorNormalCompletion12 = true;
637
+ var _didIteratorError12 = false;
638
+ var _iteratorError12 = undefined;
639
+
640
+ try {
641
+ for (var _iterator12 = extensions[Symbol.iterator](), _step12; !(_iteratorNormalCompletion12 = (_step12 = _iterator12.next()).done); _iteratorNormalCompletion12 = true) {
642
+ var extension = _step12.value;
643
+ var _iteratorNormalCompletion13 = true;
644
+ var _didIteratorError13 = false;
645
+ var _iteratorError13 = undefined;
646
+
647
+ try {
648
+ for (var _iterator13 = extension.fields[Symbol.iterator](), _step13; !(_iteratorNormalCompletion13 = (_step13 = _iterator13.next()).done); _iteratorNormalCompletion13 = true) {
649
+ var field = _step13.value;
650
+ newFieldMap[field.name.value] = astBuilder.buildField(field);
651
+ }
652
+ } catch (err) {
653
+ _didIteratorError13 = true;
654
+ _iteratorError13 = err;
655
+ } finally {
656
+ try {
657
+ if (!_iteratorNormalCompletion13 && _iterator13.return != null) {
658
+ _iterator13.return();
659
+ }
660
+ } finally {
661
+ if (_didIteratorError13) {
662
+ throw _iteratorError13;
663
+ }
664
+ }
665
+ }
666
+ }
667
+ } catch (err) {
668
+ _didIteratorError12 = true;
669
+ _iteratorError12 = err;
670
+ } finally {
671
+ try {
672
+ if (!_iteratorNormalCompletion12 && _iterator12.return != null) {
673
+ _iterator12.return();
674
+ }
675
+ } finally {
676
+ if (_didIteratorError12) {
677
+ throw _iteratorError12;
678
+ }
679
+ }
680
+ }
681
+ }
682
+
727
683
  return newFieldMap;
728
684
  }
729
685
 
@@ -738,43 +694,4 @@ export function extendSchema(schema, documentAST, options) {
738
694
 
739
695
  return extendNamedType(typeDef);
740
696
  }
741
- }
742
-
743
- function checkExtensionNode(type, node) {
744
- switch (node.kind) {
745
- case Kind.OBJECT_TYPE_EXTENSION:
746
- if (!isObjectType(type)) {
747
- throw new GraphQLError("Cannot extend non-object type \"".concat(type.name, "\"."), [node]);
748
- }
749
-
750
- break;
751
-
752
- case Kind.INTERFACE_TYPE_EXTENSION:
753
- if (!isInterfaceType(type)) {
754
- throw new GraphQLError("Cannot extend non-interface type \"".concat(type.name, "\"."), [node]);
755
- }
756
-
757
- break;
758
-
759
- case Kind.ENUM_TYPE_EXTENSION:
760
- if (!isEnumType(type)) {
761
- throw new GraphQLError("Cannot extend non-enum type \"".concat(type.name, "\"."), [node]);
762
- }
763
-
764
- break;
765
-
766
- case Kind.UNION_TYPE_EXTENSION:
767
- if (!isUnionType(type)) {
768
- throw new GraphQLError("Cannot extend non-union type \"".concat(type.name, "\"."), [node]);
769
- }
770
-
771
- break;
772
-
773
- case Kind.INPUT_OBJECT_TYPE_EXTENSION:
774
- if (!isInputObjectType(type)) {
775
- throw new GraphQLError("Cannot extend non-input object type \"".concat(type.name, "\"."), [node]);
776
- }
777
-
778
- break;
779
- }
780
697
  }