2026-05-08 17:10:50 -03:00
|
|
|
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';
|
2026-05-19 09:28:26 -03:00
|
|
|
const allowedOrigins = new Set(
|
|
|
|
|
frontendUrl
|
|
|
|
|
.split(',')
|
|
|
|
|
.map((origin) => origin.trim())
|
|
|
|
|
.filter(Boolean),
|
|
|
|
|
);
|
|
|
|
|
allowedOrigins.add('http://localhost:3000');
|
|
|
|
|
allowedOrigins.add('http://localhost:5173');
|
2026-05-08 17:10:50 -03:00
|
|
|
const port = Number(process.env.PORT || process.env.BACKEND_PORT || 3001);
|
|
|
|
|
|
|
|
|
|
app.enableCors({
|
2026-05-19 09:28:26 -03:00
|
|
|
origin(origin, callback) {
|
|
|
|
|
if (!origin || allowedOrigins.has(origin)) {
|
|
|
|
|
callback(null, true);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
callback(new Error(`Origem CORS nao permitida: ${origin}`));
|
|
|
|
|
},
|
2026-05-08 17:10:50 -03:00
|
|
|
credentials: true,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
await app.listen(port);
|
|
|
|
|
Logger.log(`Backend ouvindo na porta ${port}`, 'Bootstrap');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bootstrap();
|