import { GraphQLError } from "graphql"; import { ApolloError } from "apollo-server-express"; import { BaseError } from "@nimbus/errors"; import { InternalServerError } from "@nimbus/errors"; export function formatError(error: GraphQLError): ApolloError { let err: ApolloError; const originalError = error.originalError; if (originalError instanceof BaseError) { err = new ApolloError(originalError.message, originalError.code, originalError.render()); } else if (error.originalError) { const internalError = new InternalServerError(originalError && originalError.message || "Internal error"); err = new ApolloError(internalError.message, internalError.code, internalError.render()); } else { const internalError = new InternalServerError(error.message); err = new ApolloError(internalError.message, internalError.code, internalError.render()); } return err; }