45 lines
1.0 KiB
TypeScript
45 lines
1.0 KiB
TypeScript
import { NestFactory } from '@nestjs/core';
|
|
import {
|
|
FastifyAdapter,
|
|
NestFastifyApplication,
|
|
} from '@nestjs/platform-fastify';
|
|
import { AppModule } from './app.module';
|
|
import { ValidationPipe, VersioningType} from '@nestjs/common';
|
|
import { ConfigService } from '@nestjs/config';
|
|
import { Logger } from 'nestjs-pino';
|
|
|
|
async function bootstrap() {
|
|
const app = await NestFactory.create<NestFastifyApplication>(
|
|
AppModule,
|
|
new FastifyAdapter(),
|
|
{ bufferLogs: true },
|
|
);
|
|
|
|
const logger = app.get(Logger);
|
|
|
|
app.useLogger(logger);
|
|
app.enableCors();
|
|
app.useGlobalPipes(
|
|
new ValidationPipe({
|
|
whitelist: true,
|
|
}),
|
|
);
|
|
app.enableVersioning({
|
|
type: VersioningType.URI,
|
|
});
|
|
|
|
const configService = app.get<ConfigService>(ConfigService);
|
|
const port = configService.get<number>('port');
|
|
|
|
await app.listen(port, '0.0.0.0', (error, address) => {
|
|
if (error) {
|
|
logger.error(error);
|
|
process.exit(1);
|
|
} else {
|
|
logger.log(`Server listening on ${address}`);
|
|
}
|
|
});
|
|
}
|
|
|
|
bootstrap();
|