defaultMergedResolver.js 1.3 KB

1234567891011121314151617181920212223242526272829303132
  1. Object.defineProperty(exports, "__esModule", { value: true });
  2. var graphql_1 = require("graphql");
  3. var error_1 = require("graphql/error");
  4. var errors_1 = require("./errors");
  5. var getResponseKeyFromInfo_1 = require("./getResponseKeyFromInfo");
  6. // Resolver that knows how to:
  7. // a) handle aliases for proxied schemas
  8. // b) handle errors from proxied schemas
  9. var defaultMergedResolver = function (parent, args, context, info) {
  10. if (!parent) {
  11. return null;
  12. }
  13. var responseKey = getResponseKeyFromInfo_1.getResponseKeyFromInfo(info);
  14. var errorResult = errors_1.getErrorsFromParent(parent, responseKey);
  15. if (errorResult.kind === 'OWN') {
  16. throw error_1.locatedError(new Error(errorResult.error.message), info.fieldNodes, graphql_1.responsePathAsArray(info.path));
  17. }
  18. var result = parent[responseKey];
  19. if (result == null) {
  20. result = parent[info.fieldName];
  21. }
  22. // subscription result mapping
  23. if (!result && parent.data && parent.data[responseKey]) {
  24. result = parent.data[responseKey];
  25. }
  26. if (errorResult.errors) {
  27. result = errors_1.annotateWithChildrenErrors(result, errorResult.errors);
  28. }
  29. return result;
  30. };
  31. exports.default = defaultMergedResolver;
  32. //# sourceMappingURL=defaultMergedResolver.js.map