extendResolversFromInterfaces.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435
  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;