42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
import { NestFactory } from '@nestjs/core';
|
|
import { AppModule } from './app.module';
|
|
import { ValidationPipe } from '@nestjs/common';
|
|
import { BadRequestExceptionFilter } from './system/filters/bad-request-exception-filter';
|
|
import { IoAdapter } from '@nestjs/platform-socket.io';
|
|
import * as cookieParser from 'cookie-parser';
|
|
import { useContainer } from 'class-validator';
|
|
|
|
async function bootstrap() {
|
|
const app = await NestFactory.create(AppModule);
|
|
|
|
const prefix_version = '/api/v1';
|
|
|
|
app.enableCors({
|
|
origin: process.env.CORS.split(', ') || '*',
|
|
methods: ['GET', 'PUT', 'POST', 'DELETE', 'PATCH'],
|
|
allowedHeaders: 'Content-Type, Authorization',
|
|
credentials: true,
|
|
});
|
|
|
|
app.use(cookieParser());
|
|
|
|
app.setGlobalPrefix(prefix_version, {});
|
|
|
|
app.useWebSocketAdapter(new IoAdapter(app));
|
|
|
|
app.useGlobalFilters(new BadRequestExceptionFilter());
|
|
|
|
app.useGlobalPipes(
|
|
new ValidationPipe({
|
|
whitelist: true,
|
|
forbidNonWhitelisted: true,
|
|
transform: true,
|
|
}),
|
|
);
|
|
|
|
useContainer(app.select(AppModule), { fallbackOnErrors: true });
|
|
|
|
await app.listen(process.env.PORT);
|
|
}
|
|
bootstrap();
|