import { FastifyReply, FastifyRequest } from 'fastify'; import mongoose from 'mongoose'; export function errorHandler( error: any, req: FastifyRequest, res: FastifyReply ) { if (process.env.DEV) { console.dir(error, { depth: null }); } if (error.validation) { const errMsg = { type: 'validation_error', path: error.validation[0].instancePath, context: error.validationContext, msg: error.validation[0].message, params: error.validation[0].params, }; return res.code(400).send(errMsg); } if (error instanceof mongoose.mongo.MongoServerError) { if (error.code === 11000) { return res.code(400).send({ type: 'duplicate_key', context: 'body', msg: 'value already exists', params: error.keyValue, }); } } return res.code(500).send(); }