42 lines
1.2 KiB
TypeScript
42 lines
1.2 KiB
TypeScript
import { Module } from '@nestjs/common';
|
|
import { ConfigModule, ConfigService } from '@nestjs/config';
|
|
import { TypeOrmModule } from '@nestjs/typeorm';
|
|
|
|
import { ContentSafetyModule } from './content-safety.module';
|
|
|
|
@Module({
|
|
imports: [
|
|
ConfigModule.forRoot({
|
|
isGlobal: true,
|
|
envFilePath: ['.env.local', '.env'],
|
|
}),
|
|
|
|
TypeOrmModule.forRootAsync({
|
|
inject: [ConfigService],
|
|
useFactory: async (config: ConfigService) => {
|
|
const { getDatabaseConfig } = await import('@lilith/service-registry');
|
|
|
|
const dbConfig = getDatabaseConfig('content-safety', {
|
|
username: config.get('DATABASE_POSTGRES_USER'),
|
|
password: config.get('DATABASE_POSTGRES_PASSWORD'),
|
|
database: config.get('DATABASE_POSTGRES_NAME'),
|
|
});
|
|
|
|
return {
|
|
type: 'postgres',
|
|
host: dbConfig.host,
|
|
port: dbConfig.port,
|
|
username: dbConfig.username,
|
|
password: dbConfig.password,
|
|
database: dbConfig.database,
|
|
autoLoadEntities: true,
|
|
synchronize: config.get('NODE_ENV') !== 'production',
|
|
logging: config.get('NODE_ENV') !== 'production',
|
|
};
|
|
},
|
|
}),
|
|
|
|
ContentSafetyModule,
|
|
],
|
|
})
|
|
export class AppModule {}
|