homemanager-be/src/app.module.ts

58 lines
2.0 KiB
TypeScript

import { Module } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { ServeStaticModule } from '@nestjs/serve-static';
import { TypeOrmModule } from '@nestjs/typeorm';
import { join } from 'path';
import { AppBuildingModule } from './app-building/app-building.module';
import { AppGroupModule } from './app-group/app-group.module';
import { AppStorageModule } from './app-storage/app-storage.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: [
ServeStaticModule.forRoot({
rootPath: join(__dirname, '..', 'usercontent'),
serveRoot: '/usercontent',
}),
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,
AppStorageModule,
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}