feat:mvp1 initial commit

This commit is contained in:
Oracle Public Cloud User
2024-11-21 06:07:08 +00:00
commit 05872b5170
100 changed files with 18936 additions and 0 deletions

47
src/app.module.ts Normal file
View File

@ -0,0 +1,47 @@
import { MiddlewareConsumer, Module } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { APP_FILTER, APP_PIPE } from '@nestjs/core';
import { ClientProxyFactory, Transport } from '@nestjs/microservices';
import { TypeOrmModule } from '@nestjs/typeorm';
import { I18nMiddleware, I18nModule } from 'nestjs-i18n';
import { LoggerModule } from 'nestjs-pino';
import { AllExceptionsFilter, buildI18nValidationExceptionFilter } from './core/filters';
import { buildConfigOptions, buildLoggerOptions, buildTypeormOptions } from './core/module-options';
import { buildI18nOptions } from './core/module-options/i18n-options';
import { buildValidationPipe } from './core/pipes';
import { migrations } from './db';
import { HealthModule } from './health/health.module';
@Module({
controllers: [],
imports: [
ConfigModule.forRoot(buildConfigOptions()),
TypeOrmModule.forRootAsync({
imports: [],
inject: [ConfigService],
useFactory: (config: ConfigService) => buildTypeormOptions(config, migrations),
}),
LoggerModule.forRootAsync({
useFactory: (config: ConfigService) => buildLoggerOptions(config),
inject: [ConfigService],
}),
I18nModule.forRoot(buildI18nOptions()),
HealthModule,
],
providers: [
// Global Pipes
{
inject: [ConfigService],
provide: APP_PIPE,
useFactory: (config: ConfigService) => buildValidationPipe(config),
},
// Global Filters (order matters)
{ provide: APP_FILTER, useClass: AllExceptionsFilter },
{ provide: APP_FILTER, useValue: buildI18nValidationExceptionFilter() },
],
})
export class AppModule {
configure(consumer: MiddlewareConsumer) {
consumer.apply(I18nMiddleware).forRoutes('*');
}
}