UNPKG

1.38 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.extendResolversFromInterfaces = void 0;
4function extendResolversFromInterfaces(schema, resolvers) {
5 const extendedResolvers = {};
6 const typeMap = schema.getTypeMap();
7 for (const typeName in typeMap) {
8 const type = typeMap[typeName];
9 if ('getInterfaces' in type) {
10 extendedResolvers[typeName] = {};
11 for (const iFace of type.getInterfaces()) {
12 if (resolvers[iFace.name]) {
13 for (const fieldName in resolvers[iFace.name]) {
14 if (fieldName === '__isTypeOf' || !fieldName.startsWith('__')) {
15 extendedResolvers[typeName][fieldName] = resolvers[iFace.name][fieldName];
16 }
17 }
18 }
19 }
20 const typeResolvers = resolvers[typeName];
21 extendedResolvers[typeName] = {
22 ...extendedResolvers[typeName],
23 ...typeResolvers,
24 };
25 }
26 else {
27 const typeResolvers = resolvers[typeName];
28 if (typeResolvers != null) {
29 extendedResolvers[typeName] = typeResolvers;
30 }
31 }
32 }
33 return extendedResolvers;
34}
35exports.extendResolversFromInterfaces = extendResolversFromInterfaces;