import { PinoLogger } from 'nestjs-pino'; import { ValidationPipe } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import { NestFactory } from '@nestjs/core'; import { AppModule } from './app.module'; import { HttpExceptionFilter } from './commons/filters/all.exception-filter'; import { SanitizePipe } from './commons/pipes/sanitize.pipe'; import { ServiceRegister } from 'configuration'; async function bootstrap() { const app = await NestFactory.create(AppModule, { bodyParser: false }); const configService = app.get(ConfigService); app.useGlobalPipes(new SanitizePipe()); app.useGlobalPipes( new ValidationPipe({ transform: true, }), ); const httpExceptionFilterLogger = await app.resolve(PinoLogger); app.useGlobalFilters(new HttpExceptionFilter(httpExceptionFilterLogger)); const server = await app.listen(configService.get('http.port', 0)); const port = server.address().port; const register = new ServiceRegister({ etcd: { hosts: 'http://rpi:2379' } }); register.register('fennec/api', `http://localhost:${port}`); register.register('api.fennec', `http://localhost:${port}`); } bootstrap();