@grouparoo/core
Version:
The Grouparoo Core
34 lines (30 loc) • 978 B
text/typescript
import { Initializer, ExceptionReporter, api, log } from "actionhero";
import {
DatabaseError,
ValidationError,
UniqueConstraintError,
} from "sequelize";
export class GrouparooExceptionReporter extends Initializer {
constructor() {
super();
this.loadPriority = 1;
this.name = "grouparooExceptionReporter";
}
async initialize() {
// log the SQL statement which cause the error if we have a Sequelize Error
const grouparooExceptionReporter: ExceptionReporter = (error: Error) => {
if (
error instanceof DatabaseError ||
error instanceof ValidationError ||
error instanceof UniqueConstraintError
) {
// @ts-ignore
const sql: string = error["sql"];
// @ts-ignore
const parameters: string[] = error["parameters"];
log("Problematic SQL statement", "warning", { sql, parameters });
}
};
api.exceptionHandlers.reporters.push(grouparooExceptionReporter);
}
}