UNPKG

keyv-anyredis

Version:

Storage adapter for Keyv that works with multiple Redis clients, including cluster clients

100 lines 6.86 kB
"use strict"; var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { if (kind === "m") throw new TypeError("Private method is not writable"); if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; }; var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; var _RedisPromiseAdapter_client, _RedisPromiseAdapter_get, _RedisPromiseAdapter_set, _RedisPromiseAdapter_del, _RedisPromiseAdapter_sadd, _RedisPromiseAdapter_srem, _RedisPromiseAdapter_smembers, _RedisPromiseAdapter_sismember; Object.defineProperty(exports, "__esModule", { value: true }); exports.RedisPromiseAdapter = void 0; const events_1 = __importDefault(require("events")); const util_1 = require("util"); const compatible_redis_client_1 = require("./compatible-redis-client"); const node_redis_v4_adapter_1 = require("./node-redis-v4-adapter"); /** * Converts a Redis callback interface to match a Redis Promise interface. Implements only * a minimal subset of Redis functionality as defined in * {@link CompatiblePromiseRedisClient}. */ class RedisPromiseAdapter extends events_1.default { constructor(client) { super(); _RedisPromiseAdapter_client.set(this, void 0); // Promisified client methods _RedisPromiseAdapter_get.set(this, void 0); _RedisPromiseAdapter_set.set(this, void 0); _RedisPromiseAdapter_del.set(this, void 0); _RedisPromiseAdapter_sadd.set(this, void 0); _RedisPromiseAdapter_srem.set(this, void 0); _RedisPromiseAdapter_smembers.set(this, void 0); _RedisPromiseAdapter_sismember.set(this, void 0); __classPrivateFieldSet(this, _RedisPromiseAdapter_client, client, "f"); // istanbul ignore else if (__classPrivateFieldGet(this, _RedisPromiseAdapter_client, "f") instanceof events_1.default) { __classPrivateFieldGet(this, _RedisPromiseAdapter_client, "f").on('error', error => this.emit('error', error)); } // Bind Promisified versions of the client methods __classPrivateFieldSet(this, _RedisPromiseAdapter_get, (0, util_1.promisify)(__classPrivateFieldGet(this, _RedisPromiseAdapter_client, "f").get).bind(__classPrivateFieldGet(this, _RedisPromiseAdapter_client, "f")), "f"); __classPrivateFieldSet(this, _RedisPromiseAdapter_set, (0, util_1.promisify)(__classPrivateFieldGet(this, _RedisPromiseAdapter_client, "f").set).bind(__classPrivateFieldGet(this, _RedisPromiseAdapter_client, "f")), "f"); __classPrivateFieldSet(this, _RedisPromiseAdapter_del, (0, util_1.promisify)(__classPrivateFieldGet(this, _RedisPromiseAdapter_client, "f").del).bind(__classPrivateFieldGet(this, _RedisPromiseAdapter_client, "f")), "f"); __classPrivateFieldSet(this, _RedisPromiseAdapter_sadd, (0, util_1.promisify)(__classPrivateFieldGet(this, _RedisPromiseAdapter_client, "f").sadd).bind(__classPrivateFieldGet(this, _RedisPromiseAdapter_client, "f")), "f"); __classPrivateFieldSet(this, _RedisPromiseAdapter_srem, (0, util_1.promisify)(__classPrivateFieldGet(this, _RedisPromiseAdapter_client, "f").srem).bind(__classPrivateFieldGet(this, _RedisPromiseAdapter_client, "f")), "f"); __classPrivateFieldSet(this, _RedisPromiseAdapter_smembers, (0, util_1.promisify)(__classPrivateFieldGet(this, _RedisPromiseAdapter_client, "f").smembers).bind(__classPrivateFieldGet(this, _RedisPromiseAdapter_client, "f")), "f"); __classPrivateFieldSet(this, _RedisPromiseAdapter_sismember, (0, util_1.promisify)(__classPrivateFieldGet(this, _RedisPromiseAdapter_client, "f").sismember).bind(__classPrivateFieldGet(this, _RedisPromiseAdapter_client, "f")), "f"); } /** * Factory method returns a Promise-based Redis client. * * If the provided client is a callback client, it’s wrapped in the Promise adapter. If * the provided client is a Promise client, it’s passed through and returned. * * @param client a Redis Promise or callback client * * @returns a Redis Promise client */ static create(client) { if ((0, compatible_redis_client_1.isCompatiblePromiseRedisClient)(client)) { return client; } if ((0, compatible_redis_client_1.isCompatibleNodeRedisV4Client)(client)) { return new node_redis_v4_adapter_1.NodeRedisV4Adapter(client); } return new RedisPromiseAdapter(client); } get(key) { return __classPrivateFieldGet(this, _RedisPromiseAdapter_get, "f").call(this, key); } set(key, value, expiryMode, time) { if (expiryMode && typeof time === 'number') { return __classPrivateFieldGet(this, _RedisPromiseAdapter_set, "f").call(this, key, value, expiryMode, time); } return __classPrivateFieldGet(this, _RedisPromiseAdapter_set, "f").call(this, key, value); } del(key) { return __classPrivateFieldGet(this, _RedisPromiseAdapter_del, "f").call(this, key); } sadd(key, member) { return __classPrivateFieldGet(this, _RedisPromiseAdapter_sadd, "f").call(this, key, member); } srem(key, member) { return __classPrivateFieldGet(this, _RedisPromiseAdapter_srem, "f").call(this, key, member); } smembers(key) { return __classPrivateFieldGet(this, _RedisPromiseAdapter_smembers, "f").call(this, key); } sismember(key, member) { return __classPrivateFieldGet(this, _RedisPromiseAdapter_sismember, "f").call(this, key, member); } } exports.RedisPromiseAdapter = RedisPromiseAdapter; _RedisPromiseAdapter_client = new WeakMap(), _RedisPromiseAdapter_get = new WeakMap(), _RedisPromiseAdapter_set = new WeakMap(), _RedisPromiseAdapter_del = new WeakMap(), _RedisPromiseAdapter_sadd = new WeakMap(), _RedisPromiseAdapter_srem = new WeakMap(), _RedisPromiseAdapter_smembers = new WeakMap(), _RedisPromiseAdapter_sismember = new WeakMap(); //# sourceMappingURL=redis-promise-adapter.js.map