@qrvey/health-checker
Version:
 
51 lines • 1.65 kB
JavaScript
;
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