UNPKG

@nestjs-redis/health-indicator

Version:

A comprehensive Redis health indicator for NestJS applications using the Terminus health check library

43 lines (42 loc) 1.97 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RedisHealthIndicator = void 0; const tslib_1 = require("tslib"); const common_1 = require("@nestjs/common"); let RedisHealthIndicator = (() => { let _classDecorators = [(0, common_1.Injectable)()]; let _classDescriptor; let _classExtraInitializers = []; let _classThis; var RedisHealthIndicator = _classThis = class { constructor(healthIndicatorService) { this.healthIndicatorService = healthIndicatorService; } async isHealthy(key, { client }) { const indicator = this.healthIndicatorService.check(key); try { const result = await client.ping(); const isHealthy = result === 'PONG'; if (!isHealthy) { return indicator.down({ message: `Redis ping failed: ${result}` }); } return indicator.up(); } catch (error) { return indicator.down({ message: error instanceof Error ? error.message : 'Redis connection failed', }); } } }; tslib_1.__setFunctionName(_classThis, "RedisHealthIndicator"); (() => { const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0; tslib_1.__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers); RedisHealthIndicator = _classThis = _classDescriptor.value; if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata }); tslib_1.__runInitializers(_classThis, _classExtraInitializers); })(); return RedisHealthIndicator = _classThis; })(); exports.RedisHealthIndicator = RedisHealthIndicator;