| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- import { AliyunModule } from './aliyun/aliyun.module'
- import { Module } from '@nestjs/common'
- import { ConfigModule, ConfigService } from '@nestjs/config'
- import { TypeOrmModule } from '@nestjs/typeorm'
- import { AppController } from './app.controller'
- import { AppService } from './app.service'
- import { UsersModule } from './users/users.module'
- import { ThrottlerModule } from '@nestjs/throttler'
- import * as Yup from 'yup'
- import { SmsModule } from './sms/sms.module'
- import { DevtoolsModule } from '@nestjs/devtools-integration'
- import { AuthModule } from './auth/auth.module'
- import { FileModule } from './file/file.module'
- import { ChatModule } from './chat/chat.module'
- import { MembershipModule } from './membership/membership.module'
- import { WeixinModule } from './weixin/weixin.module'
- import { NotifyModule } from './notify/notify.module'
- import { CommissionModule } from './commission/commission.module'
- import { UserBalanceModule } from './user-balance/user-balance.module'
- import { WithdrawModule } from './withdraw/withdraw.module'
- import { SysConfigModule } from './sys-config/sys-config.module'
- import { APP_FILTER } from '@nestjs/core'
- import { AllExceptionsFilter } from './filters/all-exceptions-filter.filter'
- @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,
- ChatModule,
- MembershipModule,
- WeixinModule,
- NotifyModule,
- CommissionModule,
- UserBalanceModule,
- WithdrawModule,
- SysConfigModule
- ],
- controllers: [AppController],
- providers: [
- AppService,
- {
- provide: APP_FILTER,
- useClass: AllExceptionsFilter
- }
- ]
- })
- export class AppModule {}
|