1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.extendResolversFromInterfaces = void 0;
|
4 | function 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 | }
|
35 | exports.extendResolversFromInterfaces = extendResolversFromInterfaces;
|