Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | import { Module, MiddlewareConsumer, RequestMethod } from '@nestjs/common'; import { APP_INTERCEPTOR, APP_FILTER, Reflector } from '@nestjs/core'; import { CorrelationIdMiddleware } from './middleware/correlation-id.middleware'; import { RequestContextService } from './services/request-context.service'; import { ApiRouteRegistry } from './services/api-route-registry.service'; import { ApiRateLimitPolicyService } from './services/api-rate-limit-policy.service'; import { ApiIdempotencyService } from './services/api-idempotency.service'; import { ApiResponseEnvelopeInterceptor } from './interceptors/api-response-envelope.interceptor'; import { ApiAuditInterceptor } from './interceptors/api-audit.interceptor'; import { ApiMetricsInterceptor } from './interceptors/api-metrics.interceptor'; import { ApiDeprecationInterceptor } from './interceptors/api-deprecation.interceptor'; import { ApiErrorMappingFilter } from './filters/api-error-mapping.filter'; @Module({ providers: [ // Core Services RequestContextService, ApiRouteRegistry, ApiRateLimitPolicyService, ApiIdempotencyService, // Global Interceptors (applied in order) { provide: APP_FILTER, useClass: ApiErrorMappingFilter, }, { provide: APP_INTERCEPTOR, useClass: ApiAuditInterceptor, }, { provide: APP_INTERCEPTOR, useClass: ApiMetricsInterceptor, }, { provide: APP_INTERCEPTOR, useClass: ApiDeprecationInterceptor, }, { provide: APP_INTERCEPTOR, useClass: ApiResponseEnvelopeInterceptor, }, ], exports: [ RequestContextService, ApiRouteRegistry, ApiRateLimitPolicyService, ApiIdempotencyService, ], }) export class ApiGatewayModule { configure(consumer: MiddlewareConsumer): void { consumer .apply(CorrelationIdMiddleware) .forRoutes({ path: '*', method: RequestMethod.ALL }); } } |