dependencies Legend  Declarations  Module  Bootstrap  Providers  Exports cluster_AppTblModule cluster_AppTblModule_imports GameTblModule GameTblModule AppTblModule AppTblModule GameTblModule->AppTblModule MetricsModule MetricsModule MetricsModule->AppTblModule

File

tbl/src/app.module.ts

Description

Nest core application module

Methods

configure
configure()
Returns : void
import { Module, NestModule, Logger } from '@nestjs/common';
import { GameTblModule } from './game-tbl/game-tbl.module';
import { ConfigModule } from '@nestjs/config';
import { AppController } from './app.controller';
import { ScheduleModule } from '@nestjs/schedule';
import { LoggerModule } from 'nestjs-pino';
import { PrometheusModule } from '@willsoto/nestjs-prometheus';
import { MetricsModule } from './common/metrics.module';

/**
 *  Nest core application module
 */
@Module({
  imports: [
    LoggerModule.forRoot({
      pinoHttp: {
        autoLogging: false,
        formatters: {
          log: (object) => {
            const { namespace, ...rest } = object;
            if (namespace) {
              return {
                namespace,
                ...rest,
              };
            }
            return rest;
          },
        },
        redact: {
          paths: ['req.headers', 'req.remoteAddress', 'req.remotePort'],
          remove: true,
        },
        transport:
          process.env.NODE_ENV === 'development'
            ? {
                target: 'pino-pretty',
                options: {
                  messageFormat: '\x1B[38;5;3m[{context}] \x1B[36m{msg}',
                  singleLine: true,
                  ignore: 'context',
                },
              }
            : undefined,
      },
    }),
    ScheduleModule.forRoot(),
    ConfigModule.forRoot({
      isGlobal: true,
    }), // load .env file
    GameTblModule,
    PrometheusModule.register({
      path: '/tbl-metrics',
    }),
    MetricsModule,
  ],
  controllers: [AppController],
})
export class AppTblModule implements NestModule {
  private readonly logger = new Logger(AppTblModule.name);
  configure(): void {
    this.logger.log('configured');
  }
}

results matching ""

    No results matching ""