zents
Version:
ZenTS is a Node.js & TypeScript MVC-Framework for building rich web applications, released as free and open-source software under the MIT License. It is designed for building web applications with modern tools and design patterns.
41 lines • 1.77 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createRedisClient = void 0;
const ioredis_1 = __importDefault(require("ioredis"));
const config_1 = require("../config/config");
const logger_1 = require("../log/logger");
async function createRedisClient() {
var _a;
if (!((_a = config_1.config.redis) === null || _a === void 0 ? void 0 : _a.enable)) {
return null;
}
return new Promise((resolve, reject) => {
var _a;
const client = new ioredis_1.default(Object.assign({}, config_1.config.redis, {
lazyConnect: false,
enableReadyCheck: true,
}));
if ((_a = config_1.config.redis) === null || _a === void 0 ? void 0 : _a.log) {
client.on('connect', () => logger_1.log.success('Redis client connected successfully!'));
client.on('ready', () => logger_1.log.success('Redis connection is ready to accept commands!'));
client.on('error', (err) => logger_1.log.error(err));
client.on('close', () => logger_1.log.info('Connection to redis server closed.'));
client.on('reconnecting', () => logger_1.log.info('Redis client reconnecting to server'));
}
let isReadySend = false;
client.once('ready', () => {
isReadySend = true;
resolve(client);
});
client.once('end', () => {
if (!isReadySend) {
reject('Failed to connect to redis server.');
}
});
});
}
exports.createRedisClient = createRedisClient;
//# sourceMappingURL=createRedisClient.js.map