mirror of
https://github.com/stonith404/pingvin-share.git
synced 2024-11-15 20:00:33 +01:00
39 lines
1.3 KiB
TypeScript
39 lines
1.3 KiB
TypeScript
import { ClassSerializerInterceptor, ValidationPipe } from "@nestjs/common";
|
|
import { NestFactory, Reflector } from "@nestjs/core";
|
|
import { NestExpressApplication } from "@nestjs/platform-express";
|
|
import { DocumentBuilder, SwaggerModule } from "@nestjs/swagger";
|
|
import * as bodyParser from "body-parser";
|
|
import * as cookieParser from "cookie-parser";
|
|
import * as fs from "fs";
|
|
import { AppModule } from "./app.module";
|
|
import { DATA_DIRECTORY } from "./constants";
|
|
|
|
async function bootstrap() {
|
|
const app = await NestFactory.create<NestExpressApplication>(AppModule);
|
|
app.useGlobalPipes(new ValidationPipe({ whitelist: true }));
|
|
app.useGlobalInterceptors(new ClassSerializerInterceptor(app.get(Reflector)));
|
|
|
|
app.use(bodyParser.raw({ type: "application/octet-stream", limit: "20mb" }));
|
|
app.use(cookieParser());
|
|
app.set("trust proxy", true);
|
|
|
|
await fs.promises.mkdir(`${DATA_DIRECTORY}/uploads/_temp`, {
|
|
recursive: true,
|
|
});
|
|
|
|
app.setGlobalPrefix("api");
|
|
|
|
// Setup Swagger in development mode
|
|
if (process.env.NODE_ENV == "development") {
|
|
const config = new DocumentBuilder()
|
|
.setTitle("Pingvin Share API")
|
|
.setVersion("1.0")
|
|
.build();
|
|
const document = SwaggerModule.createDocument(app, config);
|
|
SwaggerModule.setup("api/swagger", app, document);
|
|
}
|
|
|
|
await app.listen(parseInt(process.env.PORT) || 8080);
|
|
}
|
|
bootstrap();
|