19 lines
539 B
TypeScript
19 lines
539 B
TypeScript
import fp from "fastify-plugin";
|
|
import type { FastifyInstance, FastifyError } from "fastify";
|
|
|
|
async function errorHandlerPlugin(app: FastifyInstance) {
|
|
app.setErrorHandler((error: FastifyError, _request, reply) => {
|
|
const statusCode = error.statusCode ?? 500;
|
|
|
|
if (statusCode >= 500) {
|
|
app.log.error(error);
|
|
}
|
|
|
|
reply.status(statusCode).send({
|
|
error: statusCode >= 500 ? "Internal Server Error" : error.message,
|
|
});
|
|
});
|
|
}
|
|
|
|
export const errorHandler = fp(errorHandlerPlugin, { name: "error-handler" });
|