50 lines
1.7 KiB
TypeScript
50 lines
1.7 KiB
TypeScript
import { Logger, MiddlewareConsumer, Module, NestModule } from '@nestjs/common';
|
|
import { AppController } from './app.controller';
|
|
import { AppService } from './app.service';
|
|
import { UserModule } from './user/user.module';
|
|
import { AuthModule } from './auth/auth.module';
|
|
import { RequestContextMiddleware } from 'core/als/request-context.middleware';
|
|
import { RequestContextModule } from 'core/als/request-context.module';
|
|
import { ConfigModule } from '@nestjs/config';
|
|
import { PrismaModule } from './prisma/prisma.module';
|
|
import { APP_FILTER, APP_INTERCEPTOR } from '@nestjs/core';
|
|
import { ResponseInterceptor } from 'common/interceptors/response.interceptor';
|
|
import { ExceptionsHandler } from '@nestjs/core/exceptions/exceptions-handler';
|
|
import { HttpExceptionFilter } from 'common/exceptions/exception-filter';
|
|
import { OrganizationModule } from './organization/organization.module';
|
|
import { OrganizationMembershipModule } from './organization-membership/organization-membership.module';
|
|
import { AuthorizationModule } from './authorization/authorization.module';
|
|
|
|
@Module({
|
|
imports: [
|
|
ConfigModule.forRoot({
|
|
isGlobal: true,
|
|
}),
|
|
UserModule,
|
|
AuthModule,
|
|
RequestContextModule,
|
|
PrismaModule,
|
|
OrganizationModule,
|
|
OrganizationMembershipModule,
|
|
AuthorizationModule,
|
|
],
|
|
controllers: [AppController],
|
|
providers: [
|
|
AppService,
|
|
Logger,
|
|
{
|
|
provide: APP_INTERCEPTOR,
|
|
useClass: ResponseInterceptor,
|
|
},
|
|
{
|
|
provide: APP_FILTER,
|
|
useClass: HttpExceptionFilter,
|
|
},
|
|
],
|
|
})
|
|
export class AppModule implements NestModule {
|
|
configure(consumer: MiddlewareConsumer) {
|
|
consumer.apply(RequestContextMiddleware).forRoutes('*paths');
|
|
}
|
|
}
|