graphql-mocks
Version:
Tools for setting up graphql test resolvers
37 lines (35 loc) • 1.35 kB
JavaScript
var graphql = require('graphql');
function createFieldResolverRouter(resolverMap) {
return (parent, args, context, info) => {
var _resolverMap$parentTy;
const {
fieldName,
parentType
} = info;
const resolver = (_resolverMap$parentTy = resolverMap[parentType.name]) === null || _resolverMap$parentTy === void 0 ? void 0 : _resolverMap$parentTy[fieldName];
let result;
if (resolver) {
result = resolver(parent, args, context, info);
} else {
result = graphql.defaultFieldResolver(parent, args, context, info);
}
if (typeof result === 'function') {
result = result(parent, args, context, info);
}
return result;
};
}
function createTypeResolverRouter(resolverMap) {
return function (value, context, info, abstractType) {
var _resolverMap$abstract;
const resolver = (_resolverMap$abstract = resolverMap[abstractType.name]) === null || _resolverMap$abstract === void 0 ? void 0 : _resolverMap$abstract.__resolveType;
if (resolver) {
return resolver(value, context, info, abstractType);
}
return graphql.defaultTypeResolver(value, context, info, abstractType);
};
}
exports.createFieldResolverRouter = createFieldResolverRouter;
exports.createTypeResolverRouter = createTypeResolverRouter;
//# sourceMappingURL=resolver-router.js.map
;