apollo-error-converter
Version:
Global Apollo Server Error handling made easy. Remove verbose and repetitive resolver / data source Error handling. Ensures no implementation details are ever leaked while preserving internal Error logging.
32 lines (23 loc) • 815 B
JavaScript
const createApolloError = require("./create-apollo-error");
function handleMappedError(graphQLError, mapItem) {
const { logger } = mapItem;
const { originalError } = graphQLError;
// logger may be [undefined, true, false, function]
if (logger) {
// if it is a function a specific logger has been chosen for this MapItem, otherwise use AEC configured logger
const errorLogger = typeof logger === "function" ? logger : this.logger;
errorLogger(originalError);
}
return createApolloError(graphQLError, mapItem);
}
function handleUnmappedError(graphQLError) {
const { originalError } = graphQLError;
if (this.shouldLog) {
this.logger(originalError);
}
return createApolloError(graphQLError, this.fallback);
}
module.exports = {
handleMappedError,
handleUnmappedError,
};