UNPKG

2.22 kBJavaScriptView Raw
1Object.defineProperty(exports, "__esModule", { value: true });
2var delegateToSchema_1 = require("./delegateToSchema");
3function 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}
19exports.generateProxyingResolvers = generateProxyingResolvers;
20function 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}
36exports.generateSimpleMapping = generateSimpleMapping;
37function 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}
48exports.generateMappingFromObjectType = generateMappingFromObjectType;
49function 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
\No newline at end of file