mirror of
https://github.com/dadosfera/maestro.git
synced 2026-09-29 03:14:49 +00:00
58 lines
1.6 KiB
TypeScript
58 lines
1.6 KiB
TypeScript
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();
|