| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- import { AliyunModule } from './aliyun/aliyun.module'
- import { Module } from '@nestjs/common'
- import { ConfigModule, ConfigService } from '@nestjs/config'
- import { TypeOrmModule } from '@nestjs/typeorm'
- import { ThrottlerModule } from '@nestjs/throttler'
- import * as Yup from 'yup'
- import { DevtoolsModule } from '@nestjs/devtools-integration'
- import { APP_FILTER } from '@nestjs/core'
- import { UsersModule } from './users/users.module'
- import { SmsModule } from './sms/sms.module'
- import { AuthModule } from './auth/auth.module'
- import { FileModule } from './file/file.module'
- import { UserBalanceModule } from './user-balance/user-balance.module'
- import { SysConfigModule } from './sys-config/sys-config.module'
- import { AllExceptionsFilter } from './filters/all-exceptions-filter.filter'
- import { DownloadModule } from './download/download.module';
- @Module({
- imports: [
- DevtoolsModule.register({
- http: process.env.NODE_ENV !== 'production',
- port: 8000
- }),
- ConfigModule.forRoot({
- isGlobal: true,
- validationSchema: Yup.object({
- TYPEORM_HOST: Yup.string().required(),
- TYPEORM_PORT: Yup.number().default(3306),
- TYPEORM_USERNAME: Yup.string().required(),
- TYPEORM_PASSWORD: Yup.string().required(),
- TYPEORM_DATABASE: Yup.string().required()
- })
- }),
- ThrottlerModule.forRootAsync({
- imports: [ConfigModule],
- inject: [ConfigService],
- useFactory: (config: ConfigService) => ({
- ttl: config.get<number>('THROTTLE_TTL'),
- limit: config.get<number>('THROTTLE_LIMIT')
- })
- }),
- TypeOrmModule.forRootAsync({
- imports: [ConfigModule],
- inject: [ConfigService],
- useFactory: (config: ConfigService) => ({
- type: 'mysql',
- host: config.get<string>('TYPEORM_HOST'),
- port: config.get<number>('TYPEORM_PORT'),
- username: config.get<string>('TYPEORM_USERNAME'),
- password: config.get<string>('TYPEORM_PASSWORD'),
- database: config.get<string>('TYPEORM_DATABASE'),
- synchronize: true,
- entities: [__dirname + '/**/*.entity.{ts,js}'],
- migrations: ['dist/migrations/**/*.js'],
- subscribers: ['dist/subscriber/**/*.js'],
- cli: {
- migrationsDir: config.get<string>('TYPEORM_MIGRATIONS_DIR'),
- subscribersDir: config.get<string>('TYPEORM_SUBSCRIBERS_DIR')
- }
- })
- }),
- AliyunModule,
- SmsModule,
- UsersModule,
- AuthModule,
- FileModule,
- UserBalanceModule,
- SysConfigModule,
- DownloadModule
- ],
- controllers: [],
- providers: [
- {
- provide: APP_FILTER,
- useClass: AllExceptionsFilter
- }
- ]
- })
- export class AppModule {}
|