All files / apps/file-download/src main.ts

0% Statements 0/40
0% Branches 0/1
0% Functions 0/1
0% Lines 0/40

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41                                                                                 
import '@amalia/kernel/config/server';

import { Logger } from '@nestjs/common';
import { NestFactory } from '@nestjs/core';
import { type NestExpressApplication } from '@nestjs/platform-express';
import helmet from 'helmet';
import { parse } from 'qs';
import { initializeTransactionalContext, StorageDriver } from 'typeorm-transactional';

import { Logger as JSONLogger } from '@amalia/kernel/logger/server';

import { AppModule } from './app/app.module';
import { configuration } from './configuration';

async function bootstrap() {
  initializeTransactionalContext({ storageDriver: StorageDriver.AUTO });

  const app = await NestFactory.create<NestExpressApplication>(AppModule, {
    bufferLogs: true,
  });

  // Override parser options to allow parsing larger arrays (default value is 20).
  app.set('query parser', (str: string) => parse(str, { arrayLimit: 1000 }));
  app.useLogger(app.get(JSONLogger));

  app.enableCors();
  app.use(helmet());

  app.setGlobalPrefix('file-download');

  await app.listen(configuration.apps.fileDownload.port);
}

bootstrap().catch((error) => {
  // Loggers may not be ready yet.
  // eslint-disable-next-line no-console
  console.error('Error at application startup', error);
  Logger.flush();
  process.exit(1);
});