import { NestFactory } from '@nestjs/core'; import path from 'path'; import { NestExpressApplication } from '@nestjs/platform-express'; import cookieParser from 'cookie-parser'; import compression from 'compression'; import bodyParser from 'body-parser'; import { Logger } from '@mybricks/rocker-commons'; import PostInterceptor from './common/interceptor/postInterceptor'; import IndexModule from './index.module'; import CustomLogger from './service/logger/logger'; import { InitialStart } from './init'; async function globalLogic() { InitialStart(); process.on('unhandledRejection', (e) => { Logger.info(`[global error]: [unhandledRejection]: ${JSON.stringify(e)}`); }); process.on('uncaughtException', (e) => { Logger.info(`[global error]: [uncaughtException]: ${JSON.stringify(e)}`); }); process.on('exit', (code) => { Logger.info(`[global error]: [exit]: ${code}`); }); } async function bootstrap() { const app = await NestFactory.create(IndexModule, { logger: new CustomLogger(), }); app.useStaticAssets(path.join(__dirname, './_assets/'), { prefix: '/', }); const whitelist = ['localhost']; app.enableCors({ origin: function (origin, callback) { if (!origin || whitelist.find((item) => origin.indexOf(item) >= 0)) { callback(null, true); } else { callback(new Error('Not allowed by CORS')); } }, allowedHeaders: 'X-Requested-With, X-HTTP-Method-Override, Content-Type, Accept, Observe', methods: 'GET,PUT,POST,DELETE,UPDATE,OPTIONS', credentials: true, }); app.use(cookieParser()); app.use(compression()); app.use(bodyParser.json({ limit: '100mb' })); app.useGlobalInterceptors(new PostInterceptor()); await globalLogic(); await app.listen(3000); } bootstrap();