You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							46 lines
						
					
					
						
							1.2 KiB
						
					
					
				
			
		
		
	
	
							46 lines
						
					
					
						
							1.2 KiB
						
					
					
				| 'use strict'; | |
|  | |
| Object.defineProperty(exports, '__esModule', { | |
|   value: true, | |
| }); | |
| exports.UniqueOperationNamesRule = UniqueOperationNamesRule; | |
|  | |
| var _GraphQLError = require('../../error/GraphQLError.js'); | |
|  | |
| /** | |
|  * Unique operation names | |
|  * | |
|  * A GraphQL document is only valid if all defined operations have unique names. | |
|  * | |
|  * See https://spec.graphql.org/draft/#sec-Operation-Name-Uniqueness | |
|  */ | |
| function UniqueOperationNamesRule(context) { | |
|   const knownOperationNames = Object.create(null); | |
|   return { | |
|     OperationDefinition(node) { | |
|       const operationName = node.name; | |
|  | |
|       if (operationName) { | |
|         if (knownOperationNames[operationName.value]) { | |
|           context.reportError( | |
|             new _GraphQLError.GraphQLError( | |
|               `There can be only one operation named "${operationName.value}".`, | |
|               { | |
|                 nodes: [ | |
|                   knownOperationNames[operationName.value], | |
|                   operationName, | |
|                 ], | |
|               }, | |
|             ), | |
|           ); | |
|         } else { | |
|           knownOperationNames[operationName.value] = operationName; | |
|         } | |
|       } | |
|  | |
|       return false; | |
|     }, | |
|  | |
|     FragmentDefinition: () => false, | |
|   }; | |
| }
 | |
| 
 |