UNPKG

1.28 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.zrangebyscore = zrangebyscore;
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 zrangebyscore(key, inputMin, inputMax, withScores) {
23 var map = this.data.get(key);
24 if (!map) {
25 return [];
26 }
27
28 if (this.data.has(key) && !(this.data.get(key) instanceof _es6Map2.default)) {
29 return [];
30 }
31
32 var min = (0, _zrangeCommand.parseLimit)(inputMin);
33 var max = (0, _zrangeCommand.parseLimit)(inputMax);
34 var filteredArray = (0, _lodash.filter)((0, _arrayFrom2.default)(map.values()), (0, _zrangeCommand.filterPredicate)(min, max));
35
36 var ordered = (0, _lodash.orderBy)(filteredArray, ['score', 'value']);
37 if (typeof withScores === 'string' && withScores.toUpperCase() === 'WITHSCORES') {
38 return (0, _lodash.flatMap)(ordered, function (it) {
39 return [it.value, it.score];
40 });
41 }
42 return ordered.map(function (it) {
43 return it.value;
44 });
45}
\No newline at end of file