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/dadosfera-logs'; import { AppModule } from './app.module'; import { writeFileSync } from 'fs'; async function bootstrap() { DadosferaLogger.setupLogger({ serviceName: 'maestro', serviceEnvironment: process.env.ENV, }); const logger = new DadosferaLogger(); const app = await NestFactory.create(AppModule, { 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() .addServer( process.env.ENV === 'local' ? 'http://localhost:3333' : 'https://maestro.dev.dadosfera.ai', ) .build(); const document = SwaggerModule.createDocument(app, config); await writeFileSync('swagger.json', JSON.stringify(document)); 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();