UNPKG

1.11 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.zrevrange = zrevrange;
7
8var _es6Map = require('es6-map');
9
10var _es6Map2 = _interopRequireDefault(_es6Map);
11
12var _arrayFrom = require('array-from');
13
14var _arrayFrom2 = _interopRequireDefault(_arrayFrom);
15
16var _lodash = require('lodash');
17
18var _zrangeCommand = require('./zrange-command.common');
19
20function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
22function zrevrange(key, s, e, w) {
23 var map = this.data.get(key);
24 if (!map) {
25 return [];
26 }
27
28 // @TODO investigate a more stable way to detect sorted lists
29 if (this.data.has(key) && !(this.data.get(key) instanceof _es6Map2.default)) {
30 return [];
31 }
32
33 var start = parseInt(s, 10);
34 var end = parseInt(e, 10);
35
36 var val = (0, _lodash.orderBy)((0, _arrayFrom2.default)(map.values()), ['score', 'value'], ['desc', 'desc']).map(function (it) {
37 if (w) {
38 return [it.value, it.score];
39 }
40
41 return [it.value];
42 });
43
44 val = (0, _zrangeCommand.slice)(val, start, end);
45
46 return (0, _lodash.flatten)(val);
47}
\No newline at end of file