Initial commit - Event Planner application

This commit is contained in:
mberlin
2026-03-18 14:55:56 -03:00
commit 86d779eb4d
7548 changed files with 1006324 additions and 0 deletions

View File

@@ -0,0 +1,59 @@
import {
DeadlockException,
ExceptionConverter,
ForeignKeyConstraintViolationException,
InvalidFieldNameException,
NonUniqueFieldNameException,
NotNullConstraintViolationException,
SyntaxErrorException,
TableExistsException,
TableNotFoundException,
UniqueConstraintViolationException,
CheckConstraintViolationException,
} from '@mikro-orm/core';
export class PostgreSqlExceptionConverter extends ExceptionConverter {
/**
* @see http://www.postgresql.org/docs/9.4/static/errcodes-appendix.html
* @see https://github.com/doctrine/dbal/blob/master/src/Driver/AbstractPostgreSQLDriver.php
*/
convertException(exception) {
if (exception.detail?.toString().trim()) {
exception.message += '\n - detail: ' + exception.detail;
}
if (exception.hint?.toString().trim()) {
exception.message += '\n - hint: ' + exception.hint;
}
/* v8 ignore next */
switch (exception.code) {
case '40001':
case '40P01':
return new DeadlockException(exception);
case '0A000':
// Foreign key constraint violations during a TRUNCATE operation
// are considered "feature not supported" in PostgreSQL.
if (exception.message.includes('truncate')) {
return new ForeignKeyConstraintViolationException(exception);
}
break;
case '23502':
return new NotNullConstraintViolationException(exception);
case '23503':
return new ForeignKeyConstraintViolationException(exception);
case '23505':
return new UniqueConstraintViolationException(exception);
case '23514':
return new CheckConstraintViolationException(exception);
case '42601':
return new SyntaxErrorException(exception);
case '42702':
return new NonUniqueFieldNameException(exception);
case '42703':
return new InvalidFieldNameException(exception);
case '42P01':
return new TableNotFoundException(exception);
case '42P07':
return new TableExistsException(exception);
}
return super.convertException(exception);
}
}