cal/packages/lib/redactError.ts

29 lines
875 B
TypeScript
Raw Normal View History

2023-08-03 12:22:38 -03:00
import { Prisma } from "@prisma/client";
import logger from "@calcom/lib/logger";
import { IS_PRODUCTION } from "./constants";
2023-08-03 12:22:38 -03:00
const log = logger.getSubLogger({ prefix: [`[redactError]`] });
2023-08-03 12:22:38 -03:00
function shouldRedact<T extends Error>(error: T) {
return (
error instanceof Prisma.PrismaClientInitializationError ||
error instanceof Prisma.PrismaClientKnownRequestError ||
error instanceof Prisma.PrismaClientUnknownRequestError ||
error instanceof Prisma.PrismaClientValidationError
);
}
export const redactError = <T extends Error | unknown>(error: T) => {
if (!(error instanceof Error)) {
return error;
}
log.debug("Type of Error: ", error.constructor);
if (shouldRedact(error) && IS_PRODUCTION) {
log.error("Error: ", JSON.stringify(error));
2023-08-03 12:22:38 -03:00
return new Error("An error occured while querying the database.");
}
return error;
};