UNPKG

@graphql-tools/schema

Version:

A set of utils for faster development of GraphQL tools

35 lines (34 loc) 1.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.extendResolversFromInterfaces = extendResolversFromInterfaces; function extendResolversFromInterfaces(schema, resolvers) { const extendedResolvers = {}; const typeMap = schema.getTypeMap(); for (const typeName in typeMap) { const type = typeMap[typeName]; if ('getInterfaces' in type) { extendedResolvers[typeName] = {}; for (const iFace of type.getInterfaces()) { if (resolvers[iFace.name]) { for (const fieldName in resolvers[iFace.name]) { if (fieldName === '__isTypeOf' || !fieldName.startsWith('__')) { extendedResolvers[typeName][fieldName] = resolvers[iFace.name][fieldName]; } } } } const typeResolvers = resolvers[typeName]; extendedResolvers[typeName] = { ...extendedResolvers[typeName], ...typeResolvers, }; } else { const typeResolvers = resolvers[typeName]; if (typeResolvers != null) { extendedResolvers[typeName] = typeResolvers; } } } return extendedResolvers; }