graphql-mocks
Version:
Tools for setting up graphql test resolvers
34 lines (33 loc) • 1.29 kB
JavaScript
import { defaultFieldResolver, defaultTypeResolver } from 'graphql';
function createFieldResolverRouter(resolverMap) {
return (parent, args, context, info) => {
var _resolverMap$parentTy;
var {
fieldName,
parentType
} = info;
var resolver = (_resolverMap$parentTy = resolverMap[parentType.name]) === null || _resolverMap$parentTy === void 0 ? void 0 : _resolverMap$parentTy[fieldName];
var result;
if (resolver) {
result = resolver(parent, args, context, info);
} else {
result = 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;
var 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 defaultTypeResolver(value, context, info, abstractType);
};
}
export { createFieldResolverRouter, createTypeResolverRouter };
//# sourceMappingURL=resolver-router.mjs.map