import { TerminusEndpoint, TerminusOptionsFactory, TerminusModuleOptions } from '@nestjs/terminus'; import { Injectable } from '@nestjs/common'; import { PostgresHealthIndicator } from '../health'; import { MigrationHealthIndicator } from '../health'; @Injectable() export class TerminusOptionsService implements TerminusOptionsFactory { constructor(private readonly postgresHealthIndicator: PostgresHealthIndicator, private readonly migrationHealthIndicator: MigrationHealthIndicator) {} createTerminusOptions(): TerminusModuleOptions { const healthEndpoint: TerminusEndpoint = { url: '/api/health', healthIndicators: [ async () => this.postgresHealthIndicator.isHealthy('postgres'), async () => this.migrationHealthIndicator.isHealthy('migration'), ], }; return { endpoints: [healthEndpoint], }; } }