relational-redis-store
Version:
A Relational Redis Store
95 lines • 3.59 kB
JavaScript
;
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getRedisMockClient = void 0;
var util_1 = require("util");
var getRedisMockClient = function (redis) {
return {
redis: redis,
// Collection
hget: function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
return delay().then(function () {
var _a;
return (_a = (0, util_1.promisify)(redis.hget)).bind.apply(_a, __spreadArray([redis], args, false))();
});
},
hmget: function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
return delay().then(function () {
var _a;
return (_a = (0, util_1.promisify)(redis.hmget)).bind.apply(_a, __spreadArray([redis], args, false))();
});
},
hgetall: function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
return delay().then(function () {
var _a;
return (_a = (0, util_1.promisify)(redis.hgetall)).bind.apply(_a, __spreadArray([redis], args, false))();
});
},
hset: function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
return delay().then(function () {
var _a;
return (_a = (0, util_1.promisify)(redis.hset)).bind.apply(_a, __spreadArray([redis], args, false))();
});
},
multi: redis.multi.bind(redis),
execMulti: function (multi) {
return delay().then(function () {
return new Promise(function (resolve, reject) {
return multi.exec(function (err, data) { return (err ? reject(err) : resolve(data)); });
});
});
},
del: function (key) {
return delay().then(function () {
return new Promise(function (resolve, reject) {
redis.del(key, function (err, response) {
if (response === 1) {
resolve(1);
}
else {
reject(0);
}
});
});
});
},
// Queue
rpush: (0, util_1.promisify)(redis.rpush).bind(redis),
lpop: (0, util_1.promisify)(redis.lpop).bind(redis),
lrem: (0, util_1.promisify)(redis.lrem).bind(redis),
llen: (0, util_1.promisify)(redis.llen).bind(redis),
};
};
exports.getRedisMockClient = getRedisMockClient;
exports.getRedisMockClient.DELAY = 10;
var delay = function (ms) {
if (ms === void 0) { ms = exports.getRedisMockClient.DELAY; }
return new Promise(function (resolve) {
setTimeout(resolve, ms);
});
};
//# sourceMappingURL=redisMock.js.map