if (process.env.ENV !== 'local') require('elastic-apm-node/start'); import { NestFactory } from '@nestjs/core'; import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger'; import helmet from 'helmet'; import { DadosferaLogger } from 'dadosfera-logs'; import documentEmpty from '../swagger_empty.json'; import { AppModule } from './app.module'; async function bootstrap() { DadosferaLogger.setupLogger({ serviceName: 'maestro', serviceEnvironment: process.env.ENV, }); const logger = new DadosferaLogger().logger; const orginalWinstonLog = logger.log.bind(logger); logger.log = function (...kwargs: any[]) { if (kwargs[0] in logger.levels) { if (kwargs[0] == 'error') { orginalWinstonLog('error', kwargs[2]); } } else { orginalWinstonLog('info', ...kwargs); } }; const app = await NestFactory.create(AppModule, { logger: logger, cors: { origin: '*', methods: 'GET,HEAD,PUT,PATCH,POST,DELETE', preflightContinue: false, optionsSuccessStatus: 204, }, }); app.use(helmet()); const config = new DocumentBuilder() .setTitle('Maestro') .setDescription('Documentation for Maestro gateway') .setVersion('1.0') .addBearerAuth() .build(); const document = SwaggerModule.createDocument(app, config); if (process.env.ENV != 'stg' && process.env.ENV != 'prd') SwaggerModule.setup('api', app, document); const swaggerDoc = process.env.ENV === 'dev' ? document : documentEmpty; SwaggerModule.setup('api', app, swaggerDoc); await app.listen(3333); } bootstrap();