| | import { Module } from '@nestjs/common'; |
| | import { AppController } from './app.controller'; |
| | import { AppService } from './app.service'; |
| | import { TrpcModule } from '@server/trpc/trpc.module'; |
| | import { ConfigModule, ConfigService } from '@nestjs/config'; |
| | import configuration, { ConfigurationType } from './configuration'; |
| | import { ThrottlerModule } from '@nestjs/throttler'; |
| | import { ScheduleModule } from '@nestjs/schedule'; |
| | import { FeedsModule } from './feeds/feeds.module'; |
| |
|
| | @Module({ |
| | imports: [ |
| | TrpcModule, |
| | FeedsModule, |
| | ScheduleModule.forRoot(), |
| | ConfigModule.forRoot({ |
| | isGlobal: true, |
| | envFilePath: ['.env.local', '.env'], |
| | load: [configuration], |
| | }), |
| | ThrottlerModule.forRootAsync({ |
| | imports: [ConfigModule], |
| | inject: [ConfigService], |
| | useFactory(config: ConfigService) { |
| | const throttler = |
| | config.get<ConfigurationType['throttler']>('throttler'); |
| | return [ |
| | { |
| | ttl: 60, |
| | limit: throttler?.maxRequestPerMinute || 60, |
| | }, |
| | ]; |
| | }, |
| | }), |
| | ], |
| | controllers: [AppController], |
| | providers: [AppService], |
| | }) |
| | export class AppModule {} |
| |
|