UNPKG

@qrvey/health-checker

Version:

![install size](https://packagephobia.com/badge?p=@qrvey/health-checker) ![coverage](https://img.shields.io/badge/unit_test_coverage-87%25-brightgreen)

51 lines 1.65 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.RedisHealthChecker = void 0; const redis_1 = require("redis"); const requireEnv_1 = require("../../utils/requireEnv"); const logger_1 = __importDefault(require("../../utils/logger")); const constants_1 = require("../../utils/constants"); function createRedisClient() { const redisUrl = (0, requireEnv_1.requireEnv)('REDIS_URL'); return (0, redis_1.createClient)({ url: redisUrl, socket: { connectTimeout: constants_1.DEFAULT_HEALTH_CHECK_TIMEOUT, }, }); } async function connectAndPing(client) { await client.connect(); await client.ping(); } async function closeConnection(client) { try { await client.quit(); } catch (error) { logger_1.default.warn('[RedisHealthChecker] Failed to close Redis connection', error); } } exports.RedisHealthChecker = { dependency: 'cache', async check() { const client = createRedisClient(); try { await connectAndPing(client); if (process.env.NODE_ENV === 'test') { logger_1.default.info('[RedisHealthCheck] check executed successfully'); } } catch (error) { logger_1.default.error('[RedisHealthChecker] Connection failed', error); throw error; } finally { await closeConnection(client); } }, }; //# sourceMappingURL=redisHealthChecker.service.js.map