UNPKG

ioredis-mock

Version:

This library emulates ioredis by performing all operations in-memory.

45 lines (33 loc) 1.28 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.zrangebyscore = zrangebyscore; var _es6Map = require('es6-map'); var _es6Map2 = _interopRequireDefault(_es6Map); var _arrayFrom = require('array-from'); var _arrayFrom2 = _interopRequireDefault(_arrayFrom); var _lodash = require('lodash'); var _zrangeCommand = require('./zrange-command.common'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function zrangebyscore(key, inputMin, inputMax, withScores) { var map = this.data.get(key); if (!map) { return []; } if (this.data.has(key) && !(this.data.get(key) instanceof _es6Map2.default)) { return []; } var min = (0, _zrangeCommand.parseLimit)(inputMin); var max = (0, _zrangeCommand.parseLimit)(inputMax); var filteredArray = (0, _lodash.filter)((0, _arrayFrom2.default)(map.values()), (0, _zrangeCommand.filterPredicate)(min, max)); var ordered = (0, _lodash.orderBy)(filteredArray, ['score', 'value']); if (typeof withScores === 'string' && withScores.toUpperCase() === 'WITHSCORES') { return (0, _lodash.flatMap)(ordered, function (it) { return [it.value, it.score]; }); } return ordered.map(function (it) { return it.value; }); }