common.module.ts 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { Module } from '@nestjs/common';
  2. import { APP_FILTER, APP_INTERCEPTOR } from '@nestjs/core';
  3. import { LoggerModule } from 'nestjs-pino';
  4. import pinoConfig from './config/pino.config';
  5. import { HttpExceptionFilter } from './filters/http-exception.filter';
  6. import { LoggingInterceptor } from './interceptors/logging.interceptor';
  7. import { OperationLogInterceptor } from './interceptors/operation-log.interceptor';
  8. import { ResponseInterceptor } from './interceptors/response.interceptor';
  9. import { CorrelationInterceptor } from './interceptors/correlation.interceptor';
  10. import { ExceptionService } from './services/exception.service';
  11. @Module({
  12. imports: [LoggerModule.forRoot(pinoConfig)],
  13. providers: [
  14. {
  15. provide: APP_INTERCEPTOR,
  16. useClass: CorrelationInterceptor,
  17. },
  18. {
  19. provide: APP_INTERCEPTOR,
  20. useClass: LoggingInterceptor,
  21. },
  22. {
  23. provide: APP_INTERCEPTOR,
  24. useClass: OperationLogInterceptor,
  25. },
  26. {
  27. provide: APP_INTERCEPTOR,
  28. useClass: ResponseInterceptor,
  29. },
  30. {
  31. provide: APP_FILTER,
  32. useClass: HttpExceptionFilter,
  33. },
  34. ExceptionService,
  35. ],
  36. exports: [],
  37. })
  38. export class CommonModule {}