realtime-leaderboard
Version:
Real-time powerful leaderboard with Redis
46 lines • 2.42 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CustomRedisClient = exports.RedisClientType = void 0;
var util_1 = require("util");
var RedisClientType;
(function (RedisClientType) {
RedisClientType["RedisClient"] = "RedisClient";
RedisClientType["Redis"] = "Redis";
})(RedisClientType = exports.RedisClientType || (exports.RedisClientType = {}));
var CustomRedisClient = /** @class */ (function () {
function CustomRedisClient(redisClient) {
var clientType = CustomRedisClient.getClientType(redisClient);
this.init(redisClient, clientType);
}
CustomRedisClient.getClientType = function (redisClient) {
return redisClient.constructor.name;
};
CustomRedisClient.prototype.init = function (redisClient, type) {
if (type === RedisClientType.RedisClient) {
this.type = type;
this.zrange = util_1.promisify(redisClient.zrange).bind(redisClient);
this.zadd = util_1.promisify(redisClient.zadd).bind(redisClient);
this.zscore = util_1.promisify(redisClient.zscore).bind(redisClient);
this.zrevrange = util_1.promisify(redisClient.ZREVRANGE).bind(redisClient);
this.zrevrank = util_1.promisify(redisClient.zrevrank).bind(redisClient);
this.zremrangebyrank = util_1.promisify(redisClient.zremrangebyrank).bind(redisClient);
this.zcount = util_1.promisify(redisClient.zcount).bind(redisClient);
}
else if (type === RedisClientType.Redis) {
this.type = type;
this.zrange = redisClient.zrange.bind(redisClient);
this.zadd = redisClient.zadd.bind(redisClient);
this.zscore = redisClient.zscore.bind(redisClient);
this.zrevrange = redisClient.zrevrange.bind(redisClient);
this.zrevrank = redisClient.zrevrank.bind(redisClient);
this.zremrangebyrank = redisClient.zremrangebyrank.bind(redisClient);
this.zcount = redisClient.zcount.bind(redisClient);
}
else {
throw Error("Redis client is not supported. Supported Clients: { redis, ioredis }\n Install One of Redis Packages\n >>> npm install redis\n >>> npm install ioredis");
}
};
return CustomRedisClient;
}());
exports.CustomRedisClient = CustomRedisClient;
//# sourceMappingURL=CustomRedisClient.js.map