logger/src/app.module.ts

39 lines
1.2 KiB
TypeScript

import { MessagePublisherPort } from '@mobicoop/ddd-library';
import { HealthModule, HealthModuleOptions } from '@mobicoop/health-module';
import { LoggerModule } from '@modules/logger/logger.module';
import { MESSAGE_PUBLISHER } from '@modules/messager/messager.di-tokens';
import { MessagerModule } from '@modules/messager/messager.module';
import { HttpModule } from '@nestjs/axios';
import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import { LOGGER_HEALTH_CRIT_ROUTING_KEY, SERVICE_NAME } from './app.constants';
@Module({
imports: [
ConfigModule.forRoot({ isGlobal: true }),
HttpModule,
HealthModule.forRootAsync({
imports: [LoggerModule, MessagerModule],
inject: [MESSAGE_PUBLISHER],
useFactory: async (
messagePublisher: MessagePublisherPort,
): Promise<HealthModuleOptions> => ({
serviceName: SERVICE_NAME,
criticalLoggingKey: LOGGER_HEALTH_CRIT_ROUTING_KEY,
checkUrls: [
{
name: 'google',
url: 'https://www.google.fr',
},
],
messagePublisher,
}),
}),
LoggerModule,
MessagerModule,
],
controllers: [],
providers: [],
})
export class AppModule {}