imkFinal/backend/src/main.ts
2025-03-31 08:10:10 +02:00

64 lines
1.6 KiB
TypeScript

import { Logger, ValidationPipe } from "@nestjs/common";
import { NestFactory } from "@nestjs/core";
import { AppModule } from "./app.module";
async function bootstrap() {
const logger = new Logger("Bootstrap");
try {
logger.log("Starting application...");
const app = await NestFactory.create(AppModule, {
logger: ["error", "warn", "log", "debug", "verbose"],
});
// Enable CORS
app.enableCors({
origin: [
"https://www.placebo.mk",
"https://placebo.mk",
"http://localhost:5173",
"https://imkapi.oblak.solutions",
],
methods: "GET,HEAD,PUT,PATCH,POST,DELETE,OPTIONS",
credentials: true,
allowedHeaders: [
"Origin",
"X-Requested-With",
"Content-Type",
"Accept",
"Authorization",
'Access-Control-Allow-Headers',
"Access-Control-Allow-Origin",
"Access-Control-Allow-Credentials",
],
exposedHeaders: [
'Access-Control-Allow-Origin',
'Access-Control-Allow-Credentials',
],
preflightContinue: false,
optionsSuccessStatus: 204,
});
// Global pipes
app.useGlobalPipes(
new ValidationPipe({
transform: true,
whitelist: true,
}),
);
const port = process.env.PORT || 3000;
logger.log(`Attempting to start server on port ${port}...`);
await app.listen(port, "0.0.0.0");
logger.log(`Application is running on: ${await app.getUrl()}`);
} catch (error) {
logger.error("Failed to start application:", error);
process.exit(1);
}
}
bootstrap();