All files / src/core/errors repositoryError.ts

100% Statements 8/8
66.66% Branches 6/9
100% Functions 1/1
100% Lines 8/8

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 218x 8x   8x   1x             1x   1x   1x 1x      
import { SqlError } from "mariadb";
import { DatabaseError, ValidationError } from "sequelize";
 
export default class RepositoryError extends Error {
    constructor(error: Error) {
        const message = (error instanceof ValidationError || error instanceof DatabaseError)
            ? `${error.name}${ 'parent' in error && error.parent instanceof SqlError
                ? ` (${String(error.parent.sqlMessage)})`
                : ''
            }`
            : error.message;
        
        super(message);
 
        this.name = 'RepositoryError';
 
        if (error.stack !== undefined) {
            this.stack = error.stack;
        }
    }
}