mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-13 03:10:31 +00:00
36 lines
1.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
import { NestFactory } from '@nestjs/core';
|
|
import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';
|
|
import { ClsMiddleware } from 'nestjs-cls';
|
|
import * as path from 'path';
|
|
import './utils/moment-mysql';
|
|
import { AppModule } from './modules/App/App.module';
|
|
import { NestExpressApplication } from '@nestjs/platform-express';
|
|
|
|
global.__public_dirname = path.join(__dirname, '..', 'public');
|
|
global.__static_dirname = path.join(__dirname, '../static');
|
|
global.__views_dirname = path.join(global.__static_dirname, '/views');
|
|
global.__images_dirname = path.join(global.__static_dirname, '/images');
|
|
|
|
async function bootstrap() {
|
|
const app = await NestFactory.create<NestExpressApplication>(AppModule, {
|
|
rawBody: true,
|
|
});
|
|
app.set('query parser', 'extended');
|
|
app.setGlobalPrefix('/api');
|
|
|
|
// create and mount the middleware manually here
|
|
app.use(new ClsMiddleware({}).use);
|
|
|
|
const config = new DocumentBuilder()
|
|
.setTitle('Bigcapital')
|
|
.setDescription('Financial accounting software')
|
|
.setVersion('1.0')
|
|
.build();
|
|
|
|
const documentFactory = () => SwaggerModule.createDocument(app, config);
|
|
SwaggerModule.setup('swagger', app, documentFactory);
|
|
|
|
await app.listen(process.env.PORT ?? 3000);
|
|
}
|
|
bootstrap();
|