* refactor pubsub, add support for sharded pub sub
* run tests in redis 7 only, fix PUBSUB SHARDCHANNELS test
* add some comments and fix some bugs
* PubSubType, not PubSubTypes 🤦♂️
* remove test.txt
* fix some bugs, add tests
* add some tests
* fix#2345 - allow PING in PubSub mode (remove client side validation)
* remove .only
* revert changes in cluster/index.ts
* fix tests minimum version
* handle server sunsubscribe
* add 'sharded-channel-moved' event to docs, improve the events section in the main README (fix#2302)
* exit "resubscribe" if pubsub not active
* Update commands-queue.ts
* Release client@1.5.0-rc.0
* WIP
* use `node:util` instead of `node:util/types` (to support node 14)
* run PubSub resharding test with Redis 7+
* fix inconsistency in live resharding test
* add some tests
* fix iterateAllNodes when starting from a replica
* fix iterateAllNodes random
* fix slotNodesIterator
* fix slotNodesIterator
* clear pubSubNode when node in use
* wait for all nodes cluster state to be ok before testing
* `cluster.minimizeConections` tests
* `client.reconnectStrategry = false | 0` tests
* sharded pubsub + cluster 🎉
* add minimum version to sharded pubsub tests
* add cluster sharded pubsub live reshard test, use stable dockers for tests, make sure to close pubsub clients when a node disconnects from the cluster
* fix "ssubscribe & sunsubscribe" test
* lock search docker to 2.4.9
* change numberOfMasters default to 2
* use edge for bloom
* add tests
* add back getMasters and getSlotMaster as deprecated functions
* add some tests
* fix reconnect strategy + docs
* sharded pubsub docs
* Update pub-sub.md
* some jsdoc, docs, cluster topology test
* clean pub-sub docs
Co-authored-by: Simon Prickett <simon@redislabs.com>
* reconnect startegy docs and bug fix
Co-authored-by: Simon Prickett <simon@redislabs.com>
* refine jsdoc and some docs
Co-authored-by: Simon Prickett <simon@redislabs.com>
* I'm stupid
* fix cluster topology test
* fix cluster topology test
* Update README.md
* Update clustering.md
* Update pub-sub.md
Co-authored-by: Simon Prickett <simon@redislabs.com>
* wip
* close#2216 - add support for TDIGEST.MERGESTORE and make compression optional on TDIGEST.CREATE
* fix some tdigest commands, use bloom edge docker
* fix index.ts
* 2.4-RC2 (v2.4.1)
* fix some commands and tests
* clean code
* fix#1906 - implement BITFIELD_RO
* initial support for redis functions
* fix test utils
* redis functions commands and tests
* upgrade deps
* fix "Property 'uninstall' does not exist on type 'SinonFakeTimers'"
* upgrade dockers version
* Merge branch 'master' of github.com:redis/node-redis into functions
* fix FUNCTION LIST WITHCODE and FUNCTION STATS
* upgrade deps
* set minimum version for FCALL and FCALL_RO
* fix FUNCTION LOAD
* FUNCTION LOAD
* fix FUNCTION LOAD & FUNCTION LIST & FUNCTION LOAD WITHCODE
* fix FUNCTION_LIST_WITHCODE test
* Support esModuleInterop set to false.
When testing the upcoming 4.x release, we got a bunch of typescript
errors emitted from this project.
We quickly realized this is because the library uses the esModuleInterop
flag. This makes some imports _slightly_ easier to write, but it comes
at a cost: it forces any application or library using this library to
*also* have esModuleInterop on.
The `esModuleInterop` flag is a bit of a holdover from an earlier time,
and I would not recommend using it in libraries. The main issue is that
if it's set to true, you are forcing any users of the library to also
have `esModuleInterop`, where if you keep have it set to `false` (the
default), you leave the decision to the user.
This change should have no rammifications to users with
`esModuleInterop` on, but it will enable support for those that have it
off.
This is especially good for library authors such as myself, because I
would also like to keep this flag off to not force *my* users into this
feature.
* All tests now pass!
* Move @types/redis-parser into client sub-package
and removed a comma