Skip to content
Snippets Groups Projects
health.module.ts 917 B
Newer Older
import type { ConfigType } from '@nestjs/config';

import { HttpModule } from '@nestjs/axios';
import { Module } from '@nestjs/common';
import { ClientsModule, Transport } from '@nestjs/microservices';
import { TerminusModule } from '@nestjs/terminus';

import { SERVICE_NAME } from '../common/constants.js';
import { natsConfig } from '../config/nats.config.js';

import { HealthController } from './health.controller.js';

@Module({
  imports: [
    TerminusModule,
    HttpModule,
    ClientsModule.registerAsync({
      clients: [
        {
          name: SERVICE_NAME,
          inject: [natsConfig.KEY],
          useFactory: (config: ConfigType<typeof natsConfig>) => ({
            transport: Transport.NATS,
            options: {
              servers: [config.url as string],
            },
          }),
        },
      ],
    }),
  ],
  controllers: [HealthController],
})
export class HealthModule {}