Files
Home_Buying_App/node_modules/@graphql-tools/schema/esm/extendResolversFromInterfaces.js
jackbeeby b412dfe2ca Initialisation
Added the packages and files for the backend server
2024-12-15 17:48:45 +11:00

32 lines
1.2 KiB
JavaScript

export 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;
}