@vendure/core
Version:
A modern, headless ecommerce framework
54 lines (53 loc) • 1.85 kB
TypeScript
import { HealthIndicatorFunction } from '@nestjs/terminus';
import { InjectableStrategy } from '../../common/types/injectable-strategy';
/**
* @description
* This strategy defines health checks which are included as part of the
* `/health` endpoint. They should only be used to monitor _critical_ systems
* on which proper functioning of the Vendure server depends.
*
* For more information on the underlying mechanism, see the
* [NestJS Terminus module docs](https://docs.nestjs.com/recipes/terminus).
*
* Custom strategies should be added to the `systemOptions.healthChecks` array.
* By default, Vendure includes the `TypeORMHealthCheckStrategy`, so if you set the value of the `healthChecks`
* array, be sure to include it manually.
*
* Vendure also ships with the {@link HttpHealthCheckStrategy}, which is convenient
* for adding a health check dependent on an HTTP ping.
*
* :::info
*
* This is configured via the `systemOptions.healthChecks` property of
* your VendureConfig.
*
* :::
*
*
* @example
* ```ts
* import { HttpHealthCheckStrategy, TypeORMHealthCheckStrategy } from '\@vendure/core';
* import { MyCustomHealthCheckStrategy } from './config/custom-health-check-strategy';
*
* export const config = {
* // ...
* systemOptions: {
* healthChecks: [
* new TypeORMHealthCheckStrategy(),
* new HttpHealthCheckStrategy({ key: 'my-service', url: 'https://my-service.com' }),
* new MyCustomHealthCheckStrategy(),
* ],
* },
* };
* ```
*
* @docsCategory health-check
*/
export interface HealthCheckStrategy extends InjectableStrategy {
/**
* @description
* Should return a `HealthIndicatorFunction`, as defined by the
* [NestJS Terminus module](https://docs.nestjs.com/recipes/terminus).
*/
getHealthIndicator(): HealthIndicatorFunction;
}