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 => ({ 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 {}