@tresdoce-nestjs-toolkit/filters
v1.1.5
Published
Tresdoce NestJS Toolkit - Librería para filtrar y formatear las excepciones
Downloads
979
Readme
⚠️ Es importante tener en cuenta que este filtro se encuentra implementado en el package
@tresdoce-nestjs-toolkit/paas
, ya que es una funcionalidad core para el starter.
Este módulo está pensada para ser utilizada en NestJS Starter, o cualquier proyecto que utilice una configuración centralizada, siguiendo la misma arquitectura del starter.
Glosario
- 🥳 Demo
- 📝 Requerimientos básicos
- 🛠️ Instalar dependencia
- ⚙️ Configuración
- 👨💻 Uso
- 📄 Changelog
- 📜 License MIT
📝 Requerimientos básicos
- NestJS Starter
- Node.js v20.18.0 or higher (Download)
- YARN v1.22.19 or higher
- NPM v10.9.0 or higher
- NestJS v10.4.7 or higher (Documentación)
🛠️ Instalar dependencia
npm install -S @tresdoce-nestjs-toolkit/filters
yarn add @tresdoce-nestjs-toolkit/filters
⚙️ Configuración
//./src/main.ts
import { ConfigService } from '@nestjs/config';
import { ExceptionsFilter } from '@tresdoce-nestjs-toolkit/filters';
//...
async function bootstrap() {
//...
const appConfig = app.get<ConfigService>(ConfigService)['internalConfig']['config'];
app.useGlobalFilters(new ExceptionsFilter(appConfig));
//...
}
👨💻 Uso
Para conocer sobre todas las excepciones disponibles, ingresa a la documentación de NestJS - Exception Filters
HttpException
try {
//...
} catch (error) {
throw new HttpException(error.message, error.response.status);
}
try {
//...
} catch (error) {
throw new HttpException(
{
message: error.message,
},
error.response.status,
);
}
Custom message HttpException
try {
//...
} catch (error) {
throw new HttpException('This is a message', error.response.status);
}
try {
//...
} catch (error) {
throw new HttpException(
{
message: 'This is a message',
},
error.response.status,
);
}
Simple exception
try {
//...
} catch {
throw new Error('this is an error');
}
Example response
{
"error": {
"status": 404,
"instance": "GET /api/characters",
"code": "API-PREFIX-NOT_FOUND",
"message": "Request failed with status code 404"
}
}
{
"error": {
"status": 404,
"instance": "GET /api/users/123456",
"code": "MY-API-NOT_FOUND",
"message": "User #123456 not found"
}
}
{
"error": {
"status": 400,
"instance": "POST /api/users",
"code": "MY-API-BAD_REQUEST",
"message": "Bad Request",
"detail": [
{
"message": "firstName must be a string"
},
{
"message": "lastName must be a string"
},
{
"message": "email must be an email"
},
{
"message": "email must be a string"
}
]
}
}
📄 Changelog
Todos los cambios notables de este paquete se documentarán en el archivo Changelog.