1.0.5 • Published 4 months ago

@tresdoce-nestjs-toolkit/filters v1.0.5

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

⚠️ 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


📝 Requerimientos básicos

🛠️ 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.


1.0.5

4 months ago

1.0.2

8 months ago

1.0.1

9 months ago

1.0.0

9 months ago

1.0.4

6 months ago

1.0.3

6 months ago

0.3.3-beta.1

10 months ago

0.3.2-beta.1

10 months ago

0.3.4-beta.0

9 months ago

0.3.2-beta.0

10 months ago

0.3.3-beta.0

10 months ago

0.3.2

10 months ago

0.3.3

10 months ago

0.3.2-beta.2

10 months ago

1.0.4-beta.0

6 months ago

1.0.3-beta.0

6 months ago

1.0.1-beta.2

9 months ago

1.0.0-beta.2

9 months ago

1.0.1-beta.1

9 months ago

1.0.2-beta.0

8 months ago

1.0.1-beta.0

9 months ago

1.0.1-beta.4

9 months ago

1.0.0-beta.0

9 months ago

1.0.1-beta.3

9 months ago

1.0.0-beta.1

9 months ago

0.3.0-beta.2

12 months ago

0.3.0-beta.3

12 months ago

0.3.0

12 months ago

0.3.0-beta.0

12 months ago

0.3.0-beta.1

12 months ago

0.3.0-beta.4

12 months ago

0.3.1

12 months ago

0.2.0-beta.0

1 year ago

0.2.0

1 year ago

0.1.8-beta.0

1 year ago

0.1.7-beta.0

1 year ago

0.1.8

1 year ago

0.1.7

1 year ago

0.1.6

1 year ago

0.1.4-beta.0

2 years ago

0.1.4

2 years ago

0.1.5

2 years ago

0.1.0

2 years ago

0.1.0-beta.3

2 years ago

0.1.2

2 years ago

0.1.1-beta.0

2 years ago

0.1.1

2 years ago

0.1.3

2 years ago

0.1.0-beta.2

2 years ago

0.1.0-beta.1

2 years ago

0.1.0-beta.0

2 years ago