homemanager-be/src/app.module.ts

50 lines
1.7 KiB
TypeScript

import { Module } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { TypeOrmModule } from '@nestjs/typeorm';
import { AppBuildingModule } from './app-building/app-building.module';
import { AppGroupModule } from './app-group/app-group.module';
import { AppUser } from './app-user/app-user.module';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { BuildingModule } from './objects/building/building.module';
import { GroupModule } from './objects/group/group.module';
import { StorageModule } from './objects/storage/storage.module';
import { UserModule } from './objects/user/user.module';
import { AuthModule } from './shared/auth/auth.module';
import { SecretsModule } from './shared/secrets/secrets.module';
@Module({
imports: [
ConfigModule.forRoot({
envFilePath: ['.env.development', '.env'],
isGlobal: true,
}),
TypeOrmModule.forRootAsync({
imports: [ConfigModule],
useFactory: (configService: ConfigService) => ({
type: 'mysql',
host: configService.get('DATABASE_HOST'),
port: +configService.get('DATABASE_PORT'),
username: configService.get('DATABASE_USER'),
password: configService.get('DATABASE_PASS'),
database: configService.get('DATABASE_BASE'),
autoLoadEntities: true,
synchronize: true,
}),
inject: [ConfigService],
}),
GroupModule,
UserModule,
BuildingModule,
StorageModule,
SecretsModule,
AuthModule,
AppUser,
AppGroupModule,
AppBuildingModule,
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}