import { Logger, ValidationPipe, VersioningType } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import { NestFactory } from '@nestjs/core'; import { AppModule } from './app/app.module'; import { environment } from './environments/environment'; async function bootstrap() { const configApp = await NestFactory.create(AppModule); const configService = configApp.get(ConfigService); const NODE_ENV = configService.get<'development' | 'production'>('NODE_ENV') ?? 'development'; const app = await NestFactory.create(AppModule, { logger: NODE_ENV === 'production' ? ['error', 'log', 'warn'] : ['debug', 'error', 'log', 'verbose', 'warn'] }); app.enableCors(); app.enableVersioning({ defaultVersion: '1', type: VersioningType.URI }); app.setGlobalPrefix('api'); app.useGlobalPipes( new ValidationPipe({ forbidNonWhitelisted: true, transform: true, whitelist: true }) ); const HOST = configService.get('HOST') || '0.0.0.0'; const PORT = configService.get('PORT') || 3333; await app.listen(PORT, HOST, () => { logLogo(); Logger.log(`Listening at http://${HOST}:${PORT}`); Logger.log(''); }); } function logLogo() { Logger.log(' ________ __ ____ ___'); Logger.log(' / ____/ /_ ____ _____/ /_/ __/___ / (_)___'); Logger.log(' / / __/ __ \\/ __ \\/ ___/ __/ /_/ __ \\/ / / __ \\'); Logger.log('/ /_/ / / / / /_/ (__ ) /_/ __/ /_/ / / / /_/ /'); Logger.log( `\\____/_/ /_/\\____/____/\\__/_/ \\____/_/_/\\____/ ${environment.version}` ); Logger.log(''); } bootstrap();