tbl/src/app.module.ts
Nest core application module
configure |
configure()
|
Defined in tbl/src/app.module.ts:61
|
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');
}
}