resolvers.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. Object.defineProperty(exports, "__esModule", { value: true });
  2. var delegateToSchema_1 = require("./delegateToSchema");
  3. function generateProxyingResolvers(targetSchema, transforms, mapping) {
  4. var result = {};
  5. Object.keys(mapping).forEach(function (name) {
  6. result[name] = {};
  7. var innerMapping = mapping[name];
  8. Object.keys(innerMapping).forEach(function (from) {
  9. var _a;
  10. var to = innerMapping[from];
  11. var resolverType = to.operation === 'subscription' ? 'subscribe' : 'resolve';
  12. result[name][from] = (_a = {},
  13. _a[resolverType] = createProxyingResolver(targetSchema, to.operation, to.name, transforms),
  14. _a);
  15. });
  16. });
  17. return result;
  18. }
  19. exports.generateProxyingResolvers = generateProxyingResolvers;
  20. function generateSimpleMapping(targetSchema) {
  21. var query = targetSchema.getQueryType();
  22. var mutation = targetSchema.getMutationType();
  23. var subscription = targetSchema.getSubscriptionType();
  24. var result = {};
  25. if (query) {
  26. result[query.name] = generateMappingFromObjectType(query, 'query');
  27. }
  28. if (mutation) {
  29. result[mutation.name] = generateMappingFromObjectType(mutation, 'mutation');
  30. }
  31. if (subscription) {
  32. result[subscription.name] = generateMappingFromObjectType(subscription, 'subscription');
  33. }
  34. return result;
  35. }
  36. exports.generateSimpleMapping = generateSimpleMapping;
  37. function generateMappingFromObjectType(type, operation) {
  38. var result = {};
  39. var fields = type.getFields();
  40. Object.keys(fields).forEach(function (fieldName) {
  41. result[fieldName] = {
  42. name: fieldName,
  43. operation: operation,
  44. };
  45. });
  46. return result;
  47. }
  48. exports.generateMappingFromObjectType = generateMappingFromObjectType;
  49. function createProxyingResolver(schema, operation, fieldName, transforms) {
  50. return function (parent, args, context, info) { return delegateToSchema_1.default({
  51. schema: schema,
  52. operation: operation,
  53. fieldName: fieldName,
  54. args: {},
  55. context: context,
  56. info: info,
  57. transforms: transforms,
  58. }); };
  59. }
  60. //# sourceMappingURL=resolvers.js.map