@silverwind/ioredis-mock
Version:
This library emulates ioredis by performing all operations in-memory.
25 lines (19 loc) • 631 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.zpopmin = zpopmin;
var _lodash = require("lodash");
var _zrangeCommand = require("./zrange-command.common");
function zpopmin(key, count = 1) {
const map = this.data.get(key);
if (map == null || !(map instanceof Map)) {
return [];
}
const ordered = (0, _zrangeCommand.slice)((0, _lodash.orderBy)(Array.from(map.values()), ['score', 'value']), 0, count - 1);
(0, _lodash.forEach)(ordered, it => {
map.delete(it.value);
});
this.data.set(key, map);
return (0, _lodash.flatMap)(ordered, it => [it.value, it.score]);
}