@silverwind/ioredis-mock
Version:
This library emulates ioredis by performing all operations in-memory.
35 lines (26 loc) • 805 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.zrevrange = zrevrange;
var _lodash = require("lodash");
var _zrangeCommand = require("./zrange-command.common");
function zrevrange(key, s, e, w) {
const map = this.data.get(key);
if (!map) {
return [];
} // @TODO investigate a more stable way to detect sorted lists
if (this.data.has(key) && !(this.data.get(key) instanceof Map)) {
return [];
}
const start = parseInt(s, 10);
const end = parseInt(e, 10);
let val = (0, _lodash.orderBy)(Array.from(map.values()), ['score', 'value'], ['desc', 'desc']).map(it => {
if (w) {
return [it.value, it.score];
}
return [it.value];
});
val = (0, _zrangeCommand.slice)(val, start, end);
return (0, _lodash.flatten)(val);
}