UNPKG

@theguild/federation-composition

Version:

Open Source Composition library for Apollo Federation

30 lines (29 loc) 1.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.UniqueTypeNamesRule = void 0; const graphql_1 = require("graphql"); function UniqueTypeNamesRule(context) { const knownTypeNames = new Set(); return { ScalarTypeDefinition: checkTypeName, ObjectTypeDefinition: checkTypeName, InterfaceTypeDefinition: checkTypeName, UnionTypeDefinition: checkTypeName, EnumTypeDefinition: checkTypeName, InputObjectTypeDefinition: checkTypeName, }; function checkTypeName(node) { const typeName = node.name.value; if (knownTypeNames.has(typeName)) { context.reportError(new graphql_1.GraphQLError(`There can be only one type named "${typeName}".`, { extensions: { code: 'INVALID_GRAPHQL', }, })); } else { knownTypeNames.add(typeName); } } } exports.UniqueTypeNamesRule = UniqueTypeNamesRule;