Sha256: ff5e5ffd3d486f1a02b8637815c0c67787e47240ec59e2c7a6869b63af6a9db5
Contents?: true
Size: 1.44 KB
Versions: 26
Compression:
Stored size: 1.44 KB
Contents
'use strict'; Object.defineProperty(exports, '__esModule', { value: true, }); exports.UniqueTypeNamesRule = UniqueTypeNamesRule; var _GraphQLError = require('../../error/GraphQLError.js'); /** * Unique type names * * A GraphQL document is only valid if all defined types have unique names. */ function UniqueTypeNamesRule(context) { const knownTypeNames = Object.create(null); const schema = context.getSchema(); return { ScalarTypeDefinition: checkTypeName, ObjectTypeDefinition: checkTypeName, InterfaceTypeDefinition: checkTypeName, UnionTypeDefinition: checkTypeName, EnumTypeDefinition: checkTypeName, InputObjectTypeDefinition: checkTypeName, }; function checkTypeName(node) { const typeName = node.name.value; if (schema !== null && schema !== void 0 && schema.getType(typeName)) { context.reportError( new _GraphQLError.GraphQLError( `Type "${typeName}" already exists in the schema. It cannot also be defined in this type definition.`, { nodes: node.name, }, ), ); return; } if (knownTypeNames[typeName]) { context.reportError( new _GraphQLError.GraphQLError( `There can be only one type named "${typeName}".`, { nodes: [knownTypeNames[typeName], node.name], }, ), ); } else { knownTypeNames[typeName] = node.name; } return false; } }
Version data entries
26 entries across 26 versions & 1 rubygems