@lokalise/fastify-extras
Version:
Opinionated set of fastify plugins, commonly used in Lokalise
33 lines (32 loc) • 1.18 kB
TypeScript
import { type Either } from '@lokalise/node-core';
import type { FastifyPluginCallback } from 'fastify';
import type { HealthChecker } from './healthcheckCommons.js';
export interface CommonHealthcheckPluginOptions {
responsePayload?: Record<string, unknown>;
logLevel?: 'fatal' | 'error' | 'warn' | 'info' | 'debug' | 'trace' | 'silent';
healthChecks: readonly HealthCheck[];
infoProviders?: readonly InfoProvider[];
isRootRouteEnabled?: boolean;
}
type HealthcheckResult = {
name: string;
isMandatory: boolean;
result: Either<Error, true>;
};
type ResolvedHealthcheckResponse = {
isFullyHealthy: boolean;
isPartiallyHealthy: boolean;
healthChecks: Record<string, string>;
};
export type InfoProvider = {
name: string;
dataResolver: () => Record<string, unknown>;
};
export type HealthCheck = {
name: string;
isMandatory: boolean;
checker: HealthChecker;
};
export declare function resolveHealthcheckResults(results: HealthcheckResult[], opts: CommonHealthcheckPluginOptions): ResolvedHealthcheckResponse;
export declare const commonHealthcheckPlugin: FastifyPluginCallback<CommonHealthcheckPluginOptions>;
export {};