app.module.ts 1.2 KB
import { MiddlewareConsumer, Module, NestModule } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { UsersModule } from '../users/users.module';
import { PrismaService } from 'libs/private-api/config/prisma.service';
import { AuthModule } from '../auth/auth.module';
import { DescryptMiddleware } from './middlewares/decrypt.middleware';
import { PrivateModule } from '@app/private';
import { ConfigModule } from '@nestjs/config';
import { ThrottlerModule } from '@nestjs/throttler';

@Module({
  imports: [
    PrivateModule,
    UsersModule,
    AuthModule,
    ConfigModule.forRoot({
      isGlobal: true,
      // envFilePath: [`${process.cwd()}/environment/.env.${process.env.NODE_ENV}`],
      // envFilePath: [`../../../environment/.env.dev`],
    }),
    ThrottlerModule.forRoot([
      {
        ttl: Number(process.env.RATE_LIMIT_INTERVAL),
        limit: Number(process.env.RATE_LIMIT_REQUEST),
      },
    ]),
  ],
  controllers: [AppController],
  providers: [AppService, PrismaService],
})
export class AppModule implements NestModule {
  configure(consumer: MiddlewareConsumer) {
    consumer.apply(DescryptMiddleware).forRoutes('*');
  }
}