ioredis-mock
Version:
This library emulates ioredis by performing all operations in-memory.
564 lines (372 loc) • 14.2 kB
Markdown
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to
[Semantic Versioning](http://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [3.6.5] - 2018-04-01
## Added
* `scanStream` command (#363 @BastienAr)
## [3.6.4] - 2018-02-17
## Fixed
* `keys` no longer returns empty sets, just like real redis (#358)
## [3.6.3] - 2018-02-06
## Fixed
* `srandom` not using `Set`. (#356 @ianmuninio)
## [3.6.2] - 2018-02-01
## Fixed
* `del` should return number of keys deleted from the data, not the number of arguments (#355 @donaldjarmstrong)
## [3.6.1] - 2018-01-06
### Fixed
* Passing null values should not throw exceptions (#353 @kkragenbrink)
## [3.6.0] - 2018-01-03
### Added
* `zrangebyscore` command in addition to `unsubscribe` and `quit` stubs (#350 @usebaz)
## [3.5.0] - 2017-12-07
### Added
* `subscribe` command stub (#348 @yitongding)
## [3.4.2] - 2017-11-28
### Fixed
* Remove .eslintcache file from package (#347)
## [3.4.1] - 2017-11-28
### Fixed
* More detailed RunKit example (#346)
## [3.4.0] - 2017-11-27
### Added
* Argument and Reply Transformers (#342 @DrMegavolt)
## [3.3.1] - 2017-11-17
### Fixed
* [RunKit example](https://npm.runkit.com/ioredis-mock) (#340)
## [3.3.0] - 2017-11-16
### Added
* `zadd`, `zrange`, `zremrevbyrank` and `zrevrange` commands. (#321 @ddunkin)
* Added support for passing objects and maps to `hmset` (#337)
## [3.2.0] - 2017-11-15
### Added
* `lrange` command. (#335 @sseidametov)
* `scan` command. (#334 @DrMegavolt)
## [3.1.3] - 2017-11-12
### Fixes
* Fixed errors in smembers and srem when no data is set (#332)
## [3.1.2] - 2017-11-09
### Fixes
* Fixed hexists edge cases. (#331 @wraytw)
## [3.1.1] - 2017-10-19
### Fixes
* Ignore codeclimate in npm package
## [3.1.0] - 2017-10-03
### Features
* Added `pipeline` with method chaining (#312 @funnisimo)
## [3.0.2] - 2017-10-02
### Fixes
* Added back support for node v0.10.x like ioredis.
## [3.0.1] - 2017-10-02
### Fixes
* Removed README and RunKit references to old import style.
## [3.0.0] - 2017-10-02
### Changed
* Use module.exports to be in line with ioredis. (#311 @rexxars)
### Fixes
* Error thrown in sismember() if key does not exist. (#318 @theogravity)
## [2.4.1] - 2017-10-02
### Fixes
* Allow ioredis 3 as peer dependency. (#317 @aruberto)
## [2.4.0] - 2017-03-05
### Features
* `exec` supports a callback argument. (#290)
### Fixes
* Don't modify objects passed to or returned from the internal datastore. (#281
@jeffkenney)
* Fix hash get commands for missing hashes. (#284 @jeffkenney)
## [2.3.0] - 2017-02-28
### Added
* Add event emitter inheritance. (#248 @xsellier)
* Trigger connect & ready events on instantiation. (#280 @rexxars)
### Changed
* Prevent conversion of buffer arguments to strings. (#236 @dpikt)
### Misc
* updated all dependencies to latest stable versions. (@greenkeeperio-bot)
## [2.2.0] - 2016-10-31
### Added
* buffer operation aliases. (#234 @dpikt)
* yarn lockfile.
### Changed
* updated redis-commands dependency and updated the compat table with new
commands.
## [2.1.0] - 2016-10-05
### Added
* `smove` command. (#217)
* `sdiff` command. (#216)
* `sunion` command. (#215)
* `sinter` command. (#214)
### Changed
* added compat table badge to readme. (#213)
## [2.0.0] - 2016-10-03
Bumping the version to v2 as there are fixes in this release that are breaking
changes.
### Added
* `flushdb` command.
### Changed
* Command arguments is now transformed to strings before being passed to the
command itself helping the mock behave more like a real ioredis client.
### Fixed
* `append` updated to return an integer.
* `dbsize` updated to return an integer.
* `decr` updated to return an integer.
* `decrby` updated to return an integer.
* `expire` updated to return an integer.
* `expireat` updated to return an integer.
* `hdel` updated to return an integer.
* `hexists` updated to return an integer.
* `hincrby` updated to return an integer.
* `hlen` updated to return an integer.
* `hset` updated to return an integer.
* `hsetnx` updated to return an integer.
* `hstrlen` updated to return an integer.
* `incr` updated to return an integer.
* `incrby` updated to return an integer.
* `lpush` updated to return an integer.
* `lpushx` updated to return an integer.
* `mget` required a single array argument, updated to use multiple arguments
(single array support will be added later when ioredis Argument Transformers
is properly implemented).
* `msetnx` updated to return an integer.
* `persist` updated to return an integer.
* `pexpire` updated to return an integer.
* `pexpireat` updated to return an integer.
* `pttl` updated to return an integer.
* `renamenx` updated to return an integer.
* `rpush` updated to return an integer.
* `rpushx` updated to return an integer.
* `scard` updated to return an integer.
* `setnx` updated to return an integer.
* `sismember` updated to return an integer.
* `strlen` updated to return an integer.
* `ttl` updated to return an integer.
### Deprecated
* `hmset` no longer accepts passing an object with keys and values directly.
This will be added later when ioredis Argument Transformers is properly
implemented.
## [1.15.0] - 2016-10-03
### Added
* `type` command (#207)
### Fixed
* `sadd` no longer allow duplicate values (#204 @kesla)
* `hset` learned to create a new hash if not existing instead of throwing error
(#207)
* `hset` updated to return integer reply according to redis spec (#207)
### Internal
* `set` related commands (`sadd`, `scard`, etc) implemented using es6 `Set`
instead of `Array` (#204 @kesla)
* `hset` tests refactored (#207)
## [1.14.0] - 2016-10-02
### Features
* added `scard` command (#201)
* added `discard` command (#200)
### Documentation
* added CHANGELOG.md file
## [1.13.0] - 2016-10-02
### Features
* added `mset` command (#181)
* added `msetnx` command (#182)
* added `dbsize` command (#183)
* added `lpushx` command (#184)
* added `incrbyfloat` command (#185)
* added `rpushx` command (#186)
* added `hincrbyfloat` command (#187)
* added `lpop` command (#189)
* added `rpop` command (#190)
* added `lindex` command (#191)
* added `srandmember` command (#192)
* added `lset` command (#193)
## [1.12.0] - 2016-10-02
### Features
* added `auth` command (#160)
* added `bgrewriteaof` command (#161)
* added `save` command (#162)
* added `lastsave` command (#163)
* added `bgsave` command (#164)
* added `getrange` command (#165)
* added `echo` command (#166)
* added `randomkey` command (#167)
* added `role` command (#168)
* added `flushall` command (#169)
* added `ping` command (#170)
* added `persist` command (#171)
* added `expireat` command (#172)
* added `pttl` command (#173)
* added `hkeys` command (#174)
* added `setex` command (#175)
* added `pexpireat` command (#176)
* added `hlen` command (#177)
* added `pexpire` command (#178)
* added `psetex` command (#179)
## [1.11.0] - 2016-10-01
### Features
* added `expire` command (#155)
* added `ttl` command (#157)
### Documentation
* cleaned up compat table (#158)
### Tests
* circleci now run parallel builds to distribute node v4 - v6 tests between
containers, speeding things up a bit
## [1.10.0] - 2016-10-01
### Features
* added `renamenx` command (#152)
## [1.9.0] - 2016-09-26
### Features
* added `mget` command (#134 @kesla)
### Misc
* updated all dependencies to latest versions (thanks, @greenkeeperio-bot!)
## [1.8.0] - 2016-08-13
### Features
* added `brpoplpush` command (#106 @davemcorwin)
* added `llen` command (#106 @davemcorwin)
* added `lpush` command (#106 @davemcorwin)
* added `lrem` command (#106 @davemcorwin)
* added `publish` stub (#106 @davemcorwin)
* added `rpoplpush` command (#106 @davemcorwin)
* added `rpush` command (#106 @davemcorwin)
### Fixes
* `hmset` command supports objects (#106 @davemcorwin)
* `incr` command sets default value `'0'` if not exists (#106 @davemcorwin)
### Misc
* updated all dependencies to latest versions (thanks, @greenkeeperio-bot!)
## [1.7.0] - 2016-08-02
### Features
* added `keys` command (#92 @pivotal-csaa)
### Misc
* updated test and linting dependencies to latest versions (thanks,
@greenkeeperio-bot!)
## [1.6.0] - 2016-07-04
### Features
* added `setnx` command
### Bugfixes
* `hsetnx` would report '0' to signal the key was a no-op but in reality did
change the existing value.
## [1.5.0] - 2016-06-28
### Features
* added strlen command (#53)
* added hdel command (#54)
* added hexists command (#55)
* added hincrby command (#56)
* added hstrlen command (#57)
### Documentation
* Added a note about tonicdev to readme (#52)
## [1.4.1] - 2016-06-27
### Minor changes
* updated istanbul devDependency
## [1.4.0] - 2016-06-26
### Features
* added `hmget` command
* added `rename` command
* added `append` command
### Bugfixes
* performance penalties for using delete (#45)
## [1.3.0] - 2016-06-21
### Features
* added `exists` command.
* added `time` command.
* added `getset` command.
## [1.2.0] - 2016-06-16
### Features
* added incrby and decrby commands (#34).
### Documentation
* compat.md now links to redis docs for easy lookup.
## [1.1.1] - 2016-06-15
* #30 Fix regression in v1.1.0 that broke the whole module (sorry!).
## [1.1.0] - 2016-06-14
* refactored to Bluebird promises.
* node style callbacks supported, like in ioredis.
* added del and decr.
## [1.0.6] - 2016-06-14
* added [compat table](https://github.com/stipsan/ioredis-mock/compat.md).
* added npm preversion and prepublish scripts to prevent easy maintenance
mistakes.
## [1.0.5] - 2016-06-14
* updated readme
## [1.0.4] - 2016-06-12
* 100% test coverage
* srem and sadd accepts multiple items
* added set and get commands
## [1.0.3] - 2016-06-12
* setup CircleCI to cover latest stable node releases.
* incr didn't persist changes to data.
## [1.0.2] - 2016-06-10
* Setup travis CI and AppVeyor integrations.
* Added tests for exec, hget, hset, hsetnx and incr.
* Setup coveralls and codeclimate integrations.
* Fixed broken hset implementation.
## [1.0.1] - 2016-06-09
* lodash was missing in the package.json dependencies
* fixes to documentation
* added tonicExample
## 1.0.0 - 2016-06-09
### Supported operations
* Integers
* incr
* Hashing
* hset
* hget
* hgetall
* hsetnx
* hmset
* hvals
* Lists
* sadd
* srem
* smembers
* sismember
* Transaction
* multi
* exec
[unreleased]: https://github.com/stipsan/ioredis-mock/compare/v3.6.5...HEAD
[3.6.5]: https://github.com/stipsan/ioredis-mock/compare/v3.6.4...v3.6.5
[3.6.4]: https://github.com/stipsan/ioredis-mock/compare/v3.6.3...v3.6.4
[3.6.3]: https://github.com/stipsan/ioredis-mock/compare/v3.6.2...v3.6.3
[3.6.2]: https://github.com/stipsan/ioredis-mock/compare/v3.6.1...v3.6.2
[3.6.1]: https://github.com/stipsan/ioredis-mock/compare/v3.6.0...v3.6.1
[3.6.0]: https://github.com/stipsan/ioredis-mock/compare/v3.5.0...v3.6.0
[3.5.0]: https://github.com/stipsan/ioredis-mock/compare/v3.4.2...v3.5.0
[3.4.2]: https://github.com/stipsan/ioredis-mock/compare/v3.4.1...v3.4.2
[3.4.1]: https://github.com/stipsan/ioredis-mock/compare/v3.4.0...v3.4.1
[3.4.0]: https://github.com/stipsan/ioredis-mock/compare/v3.3.1...v3.4.0
[3.3.1]: https://github.com/stipsan/ioredis-mock/compare/v3.3.0...v3.3.1
[3.3.0]: https://github.com/stipsan/ioredis-mock/compare/v3.2.0...v3.3.0
[3.2.0]: https://github.com/stipsan/ioredis-mock/compare/v3.1.3...v3.2.0
[3.1.3]: https://github.com/stipsan/ioredis-mock/compare/v3.1.2...v3.1.3
[3.1.2]: https://github.com/stipsan/ioredis-mock/compare/v3.1.1...v3.1.2
[3.1.1]: https://github.com/stipsan/ioredis-mock/compare/v3.1.0...v3.1.1
[3.1.0]: https://github.com/stipsan/ioredis-mock/compare/v3.0.2...v3.1.0
[3.0.2]: https://github.com/stipsan/ioredis-mock/compare/v3.0.1...v3.0.2
[3.0.1]: https://github.com/stipsan/ioredis-mock/compare/v3.0.0...v3.0.1
[3.0.0]: https://github.com/stipsan/ioredis-mock/compare/v2.4.1...v3.0.0
[2.4.1]: https://github.com/stipsan/ioredis-mock/compare/v2.4.0...v2.4.1
[2.4.0]: https://github.com/stipsan/ioredis-mock/compare/v2.3.0...v2.4.0
[2.3.0]: https://github.com/stipsan/ioredis-mock/compare/v2.2.0...v2.3.0
[2.2.0]: https://github.com/stipsan/ioredis-mock/compare/v2.1.0...v2.2.0
[2.1.0]: https://github.com/stipsan/ioredis-mock/compare/v2.0.0...v2.1.0
[2.0.0]: https://github.com/stipsan/ioredis-mock/compare/v1.15.0...v2.0.0
[1.15.0]: https://github.com/stipsan/ioredis-mock/compare/v1.14.0...v1.15.0
[1.14.0]: https://github.com/stipsan/ioredis-mock/compare/v1.13.1...v1.14.0
[1.13.0]: https://github.com/stipsan/ioredis-mock/compare/v1.12.0...v1.13.0
[1.12.0]: https://github.com/stipsan/ioredis-mock/compare/v1.11.0...v1.12.0
[1.11.0]: https://github.com/stipsan/ioredis-mock/compare/v1.10.0...v1.11.0
[1.10.0]: https://github.com/stipsan/ioredis-mock/compare/v1.9.0...v1.10.0
[1.9.0]: https://github.com/stipsan/ioredis-mock/compare/v1.8.3...v1.9.0
[1.8.0]: https://github.com/stipsan/ioredis-mock/compare/v1.7.0...v1.8.0
[1.7.0]: https://github.com/stipsan/ioredis-mock/compare/v1.6.0...v1.7.0
[1.6.0]: https://github.com/stipsan/ioredis-mock/compare/v1.5.0...v1.6.0
[1.5.0]: https://github.com/stipsan/ioredis-mock/compare/v1.4.1...v1.5.0
[1.4.1]: https://github.com/stipsan/ioredis-mock/compare/v1.4.0...v1.4.1
[1.4.0]: https://github.com/stipsan/ioredis-mock/compare/v1.3.0...v1.4.0
[1.3.0]: https://github.com/stipsan/ioredis-mock/compare/v1.2.0...v1.3.0
[1.2.0]: https://github.com/stipsan/ioredis-mock/compare/v1.1.1...v1.2.0
[1.1.1]: https://github.com/stipsan/ioredis-mock/compare/v1.1.0...v1.1.1
[1.1.0]: https://github.com/stipsan/ioredis-mock/compare/v1.0.6...v1.1.0
[1.0.6]: https://github.com/stipsan/ioredis-mock/compare/v1.0.5...v1.0.6
[1.0.5]: https://github.com/stipsan/ioredis-mock/compare/v1.0.4...v1.0.5
[1.0.4]: https://github.com/stipsan/ioredis-mock/compare/v1.0.3...v1.0.4
[1.0.3]: https://github.com/stipsan/ioredis-mock/compare/v1.0.2...v1.0.3
[1.0.2]: https://github.com/stipsan/ioredis-mock/compare/v1.0.1...v1.0.2
[1.0.1]: https://github.com/stipsan/ioredis-mock/compare/v1.0.0...v1.0.1