UNPKG

prisma-error-formatter

Version:

A flexible and customizable Prisma error formatter to simplify and unify error handling in Prisma Client applications.

48 lines (47 loc) 2.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PrismaExceptionFormatter = void 0; const library_1 = require("@prisma/client/runtime/library"); const default_formatters_1 = require("./default-formatters"); class PrismaExceptionFormatter { constructor(options) { this.customFormat = options === null || options === void 0 ? void 0 : options.format; } applyFormat(type, error, defaults) { return this.customFormat ? this.customFormat({ type, error, default: defaults }) : defaults; } formatPrismaError(exception) { const defaults = (0, default_formatters_1.formatKnownError)(exception); return this.applyFormat("known", exception, defaults); } formatQueryError(exception) { const defaults = (0, default_formatters_1.formatValidationError)(exception); return this.applyFormat("validation", exception, defaults); } formatInitializationError(exception) { const defaults = (0, default_formatters_1.formatInitializationError)(exception); return this.applyFormat("initialization", exception, defaults); } formatUnknownError(exception) { const defaults = (0, default_formatters_1.formatUnknownError)(exception); return this.applyFormat("unknown", exception, defaults); } formatError(exception) { if (exception instanceof library_1.PrismaClientKnownRequestError) { return this.formatPrismaError(exception); } else if (exception instanceof library_1.PrismaClientValidationError || exception instanceof library_1.PrismaClientRustPanicError) { return this.formatQueryError(exception); } else if (exception instanceof library_1.PrismaClientInitializationError) { return this.formatInitializationError(exception); } else { return this.formatUnknownError(exception); } } } exports.PrismaExceptionFormatter = PrismaExceptionFormatter;