Files
2026-04-21 22:34:39 +08:00

57 lines
2.2 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const core_1 = require("@nestjs/core");
const app_module_1 = require("./app.module");
const common_1 = require("@nestjs/common");
const swagger_1 = require("@nestjs/swagger");
const api_module_1 = require("./app/api/api.module");
const http_exception_filter_1 = require("./app/common/exception/http_exception.filter");
const app_env_1 = require("./app.env");
const path_1 = require("path");
const admin_module_1 = require("./app/admin/admin.module");
class CustomValidationPipe extends common_1.ValidationPipe {
transform(value, metadata) {
if (typeof value == 'object') {
value = Object.fromEntries(Object.entries(value).filter(([_, v]) => {
if (typeof v == 'undefined') {
return false;
}
if (v == '' && metadata.type != 'body') {
return false;
}
return true;
}));
}
return super.transform(value, metadata);
}
}
async function bootstrap() {
const app = await core_1.NestFactory.create(app_module_1.AppModule, {});
app.enableCors();
app.set('trust proxy', true);
app.useStaticAssets((0, path_1.join)(__dirname, '..', app_env_1.AppEnv.STATIC_DIR), {
prefix: '/static/',
});
app.useGlobalFilters(new http_exception_filter_1.HttpExceptionFilter());
app.useGlobalPipes(new CustomValidationPipe({
transform: true,
whitelist: true,
skipNullProperties: true,
}));
const config = new swagger_1.DocumentBuilder()
.addBearerAuth()
.setTitle('doc example')
.setDescription('doc description')
.setVersion('1.0')
.addTag('doc')
.build();
swagger_1.SwaggerModule.setup('doc/api', app, () => swagger_1.SwaggerModule.createDocument(app, config, {
include: [api_module_1.ApiModule],
}));
swagger_1.SwaggerModule.setup('doc/admin', app, () => swagger_1.SwaggerModule.createDocument(app, config, {
include: [admin_module_1.AdminModule],
}));
await app.listen(app_env_1.AppEnv.SERVER_PROT);
}
void bootstrap();
//# sourceMappingURL=main.js.map