1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.zrangebyscore = zrangebyscore;
|
7 |
|
8 | var _es6Map = require('es6-map');
|
9 |
|
10 | var _es6Map2 = _interopRequireDefault(_es6Map);
|
11 |
|
12 | var _arrayFrom = require('array-from');
|
13 |
|
14 | var _arrayFrom2 = _interopRequireDefault(_arrayFrom);
|
15 |
|
16 | var _lodash = require('lodash');
|
17 |
|
18 | var _zrangeCommand = require('./zrange-command.common');
|
19 |
|
20 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
21 |
|
22 | function 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 |