omnichannel-backend/src/main.ts

38 lines
1.0 KiB
TypeScript
Raw Normal View History

import 'reflect-metadata';
import { Logger } from '@nestjs/common';
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { loadEnv } from './infra/config/load-env';
async function bootstrap() {
loadEnv();
const app = await NestFactory.create(AppModule);
const frontendUrl = process.env.FRONTEND_URL || 'http://localhost:3000';
const allowedOrigins = new Set(
frontendUrl
.split(',')
.map((origin) => origin.trim())
.filter(Boolean),
);
allowedOrigins.add('http://localhost:3000');
allowedOrigins.add('http://localhost:5173');
const port = Number(process.env.PORT || process.env.BACKEND_PORT || 3001);
app.enableCors({
origin(origin, callback) {
if (!origin || allowedOrigins.has(origin)) {
callback(null, true);
return;
}
callback(new Error(`Origem CORS nao permitida: ${origin}`));
},
credentials: true,
});
await app.listen(port);
Logger.log(`Backend ouvindo na porta ${port}`, 'Bootstrap');
}
bootstrap();