From 411bce00a489d021e76429243e5de6cc5ffc151c Mon Sep 17 00:00:00 2001 From: Sebastien Ritz Date: Thu, 3 Jan 2019 10:04:07 +0100 Subject: [PATCH] fix(reconnect): remove all listeners if objects already exists and unsubscribe the ping interval --- package-lock.json | 393 ++++++++++---------- package.json | 2 +- src/module/managers/redis-client.manager.ts | 29 +- 3 files changed, 222 insertions(+), 202 deletions(-) diff --git a/package-lock.json b/package-lock.json index 927a7a5..5b7f439 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,31 +1,31 @@ { "name": "@hapiness/redis", - "version": "1.4.0", + "version": "1.4.1", "lockfileVersion": 1, "requires": true, "dependencies": { "@hapiness/core": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@hapiness/core/-/core-1.5.4.tgz", - "integrity": "sha512-6QllW1p2iCcycG2NM2uP2QlMiLjXgLtsRCjglkqMQrH9jIWNLabLjgfN4M7w1TMqKh9IJzKVua8iRAPW2kTvnQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@hapiness/core/-/core-1.6.0.tgz", + "integrity": "sha512-w35aOgN5WC1NdY0qHftCgsagw/3Qn8Al81XQhieq3eUbKpD8ZEvK7YPGHXl0/D8jUIP+d4L5vBhJAGcOT70Wzw==", "dev": true, "requires": { - "@types/hapi": "16.1.15", + "@types/hapi": "16.1.16", "@types/hoek": "4.1.3", - "@types/joi": "13.6.0", - "@types/node": "9.6.34", + "@types/joi": "13.6.3", + "@types/node": "9.6.41", "@types/websocket": "0.0.38", - "debug": "3.2.5", - "hapi": "16.6.3", + "debug": "3.2.6", + "hapi": "16.7.0", "injection-js": "2.2.1", "reflect-metadata": "0.1.12", "websocket": "1.0.28" }, "dependencies": { "@types/node": { - "version": "9.6.34", - "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.34.tgz", - "integrity": "sha512-PzJpSs2afoYqBA4yLBgaKUdZRk8+1yvkxcUBW6958h4vYOC+pc4k4C+QmQ6AO5Pt7uA4EIIboFog6YNCuITD0g==", + "version": "9.6.41", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.41.tgz", + "integrity": "sha512-sPZWEbFMz6qAy9SLY7jh5cgepmsiwqUUHjvEm8lpU6kug2hmmcyuTnwhoGw/GWpI5Npue4EqvsiQQI0eWjW/ZA==", "dev": true } } @@ -57,21 +57,20 @@ "integrity": "sha512-DsknoBvD8s+RFfSGjmERJ7ZOP1HI0UZRA3FSI+Zakhrc/Gy26YQsLI+m5V5DHxroHRJqCDLKJp7Hixn8zyaF7g==", "dev": true, "requires": { - "@types/node": "10.11.5" + "@types/node": "10.12.18" } }, "@types/hapi": { - "version": "16.1.15", - "resolved": "https://registry.npmjs.org/@types/hapi/-/hapi-16.1.15.tgz", - "integrity": "sha512-3C1ySHP8CiZ24dtq40XNnpoPbfuZHM+P96EZ2G9gmFFx7iPpRuKjn2sAQA2CDg9Is8KrZKvpyMVkxvcU1MwxXQ==", + "version": "16.1.16", + "resolved": "https://registry.npmjs.org/@types/hapi/-/hapi-16.1.16.tgz", + "integrity": "sha512-EOm18mKnS/TgX/es9+n8cJDhxNXXk/HXlcb0C9WPwJPOK1yTchjj4ftKSaE3C2lorz7GuWfRpg6weq5UdW27TQ==", "dev": true, "requires": { "@types/boom": "4.3.10", "@types/catbox": "7.1.6", - "@types/events": "1.2.0", - "@types/joi": "13.6.0", + "@types/joi": "13.6.3", "@types/mimos": "3.0.1", - "@types/node": "10.11.5", + "@types/node": "10.12.18", "@types/podium": "1.0.0", "@types/shot": "4.0.0" } @@ -83,9 +82,9 @@ "dev": true }, "@types/joi": { - "version": "13.6.0", - "resolved": "https://registry.npmjs.org/@types/joi/-/joi-13.6.0.tgz", - "integrity": "sha512-vgxADik+Va7AcMZ89C7MVod3DlB3SWcj4dDI+XIceObGFfscehtjA0fFzBCZLoRr7ShjLVHNu1gMk+HtrG8WeQ==", + "version": "13.6.3", + "resolved": "https://registry.npmjs.org/@types/joi/-/joi-13.6.3.tgz", + "integrity": "sha512-n5tDa0/3MUtHsA2fVH+emDfGQkPramIpWaOvWS+7C/Yq7bn2j979RAIy9pbl4F4hSE5lwjgBXhJN019DP+3ofg==", "dev": true }, "@types/mime-db": { @@ -110,9 +109,9 @@ "dev": true }, "@types/node": { - "version": "10.11.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.11.5.tgz", - "integrity": "sha512-3j1EFLfrjYRHRFjBb+RIXXwr1YGzcfpQVMP39thZa6tMY+JjVgQddPF+hsdV800JqbuLwpwAWclDpbGSAw44vQ==" + "version": "10.12.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz", + "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==" }, "@types/podium": { "version": "1.0.0", @@ -121,11 +120,11 @@ "dev": true }, "@types/redis": { - "version": "2.8.7", - "resolved": "https://registry.npmjs.org/@types/redis/-/redis-2.8.7.tgz", - "integrity": "sha512-ZMW8M5LRxU0D4u2GhnCEqJ1/mUJKSudlCWxeP1FRxfZQqr0Pb4tonPLzDEyRpC50uvEfAP3xOLjDuUOWi0QHCQ==", + "version": "2.8.10", + "resolved": "https://registry.npmjs.org/@types/redis/-/redis-2.8.10.tgz", + "integrity": "sha512-X0NeV3ivoif2SPsmuPhwTkKfcr1fDJlaJIOyxZ9/TCIEbvzMzmZlstqCZ5r7AOolbOJtAfvuGArNXMexYYH3ng==", "requires": { - "@types/node": "10.11.5" + "@types/node": "10.12.18" } }, "@types/shot": { @@ -134,17 +133,17 @@ "integrity": "sha512-Xv+n8yfccuicMlwBY58K5PVVNtXRm7uDzcwwmCarBxMP+XxGfnh1BI06YiVAsPbTAzcnYsrzpoS5QHeyV7LS8A==", "dev": true, "requires": { - "@types/node": "10.11.5" + "@types/node": "10.12.18" } }, "@types/websocket": { "version": "0.0.38", - "resolved": "http://registry.npmjs.org/@types/websocket/-/websocket-0.0.38.tgz", + "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-0.0.38.tgz", "integrity": "sha512-Z7dRTAiMoIjz9HBa/xb3k+2mx2uJx2sbnbkRRIvM+l/srNLfthHFBW/jD59thOcEa1/ZooKd30G0D+KGH9wU7Q==", "dev": true, "requires": { "@types/events": "1.2.0", - "@types/node": "10.11.5" + "@types/node": "10.12.18" } }, "abbrev": { @@ -164,15 +163,15 @@ } }, "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz", + "integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", + "fast-deep-equal": "2.0.1", "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" } }, "ammo": { @@ -308,7 +307,7 @@ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.5.7", + "core-js": "2.6.1", "regenerator-runtime": "0.11.1" } }, @@ -388,7 +387,6 @@ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, - "optional": true, "requires": { "tweetnacl": "0.14.5" } @@ -477,7 +475,7 @@ "requires": { "hoek": "4.2.1", "isemail": "2.2.1", - "items": "2.1.1", + "items": "2.1.2", "topo": "2.0.2" } } @@ -533,12 +531,6 @@ } } }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", @@ -603,9 +595,9 @@ "dev": true }, "core-js": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.1.tgz", + "integrity": "sha512-L72mmmEayPJBejKIWe2pYtGis5r0tQ5NaJekdhyXgeMQTpJoBsH0NL4ElY2LfSoV15xeQWKQ+XTTOZdyero5Xg==", "dev": true }, "core-util-is": { @@ -636,15 +628,15 @@ "requires": { "nice-try": "1.0.5", "path-key": "2.0.1", - "semver": "5.5.1", + "semver": "5.6.0", "shebang-command": "1.2.0", "which": "1.3.1" } }, "cryptiles": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", - "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.4.tgz", + "integrity": "sha512-8I1sgZHfVwcSOY6mSGpVU3lw/GSIZvusg8dD2+OGehCJpOhQRLNcH0qb9upQnOH4XhgxxFJSg6E2kx95deb1Tw==", "dev": true, "requires": { "boom": "5.2.0" @@ -660,9 +652,9 @@ } }, "debug": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", - "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { "ms": "2.1.1" } @@ -713,7 +705,6 @@ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dev": true, - "optional": true, "requires": { "jsbn": "0.1.1", "safer-buffer": "2.1.2" @@ -758,7 +749,7 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "4.1.3", + "lru-cache": "4.1.5", "shebang-command": "1.2.0", "which": "1.3.1" } @@ -778,9 +769,9 @@ "dev": true }, "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", "dev": true }, "fast-json-stable-stringify": { @@ -815,25 +806,14 @@ "dev": true }, "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, "requires": { "asynckit": "0.4.0", - "combined-stream": "1.0.6", - "mime-types": "2.1.20" - }, - "dependencies": { - "combined-stream": { - "version": "1.0.6", - "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "dev": true, - "requires": { - "delayed-stream": "1.0.0" - } - } + "combined-stream": "1.0.7", + "mime-types": "2.1.21" } }, "formatio": { @@ -857,7 +837,7 @@ "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==", "dev": true, "requires": { - "graceful-fs": "4.1.11", + "graceful-fs": "4.1.15", "jsonfile": "4.0.0", "universalify": "0.1.2" } @@ -910,9 +890,9 @@ "dev": true }, "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", "dev": true }, "growl": { @@ -951,9 +931,9 @@ } }, "hapi": { - "version": "16.6.3", - "resolved": "http://registry.npmjs.org/hapi/-/hapi-16.6.3.tgz", - "integrity": "sha512-Fe1EtSlRWdez9c1sLDrHZYxpsp3IddwtUWp7y65TCBW5CMcBP98X4WnoBJZTGsDZnk/FDkRyEMhUVsC9qysDPg==", + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/hapi/-/hapi-16.7.0.tgz", + "integrity": "sha512-UeMX1LMWmHEIgMlwZGK/3lhI7X0VRvOioVply0Y9qF+/O5woGdQzNB8ZmDnLOBjnB6bdWWHyo5DEamuCsE1vmg==", "dev": true, "requires": { "accept": "2.1.4", @@ -962,15 +942,16 @@ "call": "4.0.2", "catbox": "7.1.5", "catbox-memory": "2.0.4", - "cryptiles": "3.1.2", + "cryptiles": "3.1.4", "heavy": "4.0.4", "hoek": "4.2.1", "iron": "4.0.5", - "items": "2.1.1", + "items": "2.1.2", "joi": "11.4.0", "mimos": "3.0.3", "podium": "1.3.0", "shot": "3.4.2", + "somever": "1.0.1", "statehood": "5.0.3", "subtext": "5.0.0", "topo": "2.0.2" @@ -983,12 +964,12 @@ "dev": true }, "har-validator": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", - "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "dev": true, "requires": { - "ajv": "5.5.2", + "ajv": "6.6.2", "har-schema": "2.0.0" } }, @@ -1032,7 +1013,7 @@ "requires": { "hoek": "4.2.1", "isemail": "2.2.1", - "items": "2.1.1", + "items": "2.1.2", "topo": "2.0.2" } } @@ -1040,7 +1021,7 @@ }, "hoek": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", + "resolved": "http://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==", "dev": true }, @@ -1052,7 +1033,7 @@ "requires": { "assert-plus": "1.0.0", "jsprim": "1.4.1", - "sshpk": "1.14.2" + "sshpk": "1.16.0" } }, "inflight": { @@ -1099,7 +1080,7 @@ "dev": true, "requires": { "boom": "5.2.0", - "cryptiles": "3.1.2", + "cryptiles": "3.1.4", "hoek": "4.2.1" } }, @@ -1144,7 +1125,7 @@ }, "isemail": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isemail/-/isemail-2.2.1.tgz", + "resolved": "http://registry.npmjs.org/isemail/-/isemail-2.2.1.tgz", "integrity": "sha1-A1PT2aYpUQgMJiwqoKQrjqjp4qY=", "dev": true }, @@ -1233,7 +1214,7 @@ "babel-types": "6.26.0", "babylon": "6.18.0", "istanbul-lib-coverage": "1.2.1", - "semver": "5.5.1" + "semver": "5.6.0" } }, "istanbul-lib-report": { @@ -1265,10 +1246,10 @@ "integrity": "sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg==", "dev": true, "requires": { - "debug": "3.2.5", + "debug": "3.2.6", "istanbul-lib-coverage": "1.2.1", "mkdirp": "0.5.1", - "rimraf": "2.6.2", + "rimraf": "2.6.3", "source-map": "0.5.7" } }, @@ -1282,9 +1263,9 @@ } }, "items": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/items/-/items-2.1.1.tgz", - "integrity": "sha1-i9FtnIOxlSneWuoyGsqtp4NkoZg=", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/items/-/items-2.1.2.tgz", + "integrity": "sha512-kezcEqgB97BGeZZYtX/MA8AG410ptURstvnz5RAgyFZ8wQFPMxHY8GpTq+/ZHKT3frSlIthUq7EvLt9xn3TvXg==", "dev": true }, "joi": { @@ -1294,14 +1275,14 @@ "dev": true, "requires": { "hoek": "4.2.1", - "isemail": "3.1.3", + "isemail": "3.2.0", "topo": "2.0.2" }, "dependencies": { "isemail": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.1.3.tgz", - "integrity": "sha512-5xbsG5wYADIcB+mfLsd+nst1V/D+I7EU7LEZPo2GOIMu4JzfcRs5yQoypP4avA7QtUqgxYLKBYNv4IdzBmbhdw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz", + "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==", "dev": true, "requires": { "punycode": "2.1.1" @@ -1329,12 +1310,11 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, - "optional": true + "dev": true }, "jsesc": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", "dev": true }, @@ -1345,9 +1325,9 @@ "dev": true }, "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "json-stringify-safe": { @@ -1362,7 +1342,7 @@ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "4.1.15" } }, "jsprim": { @@ -1422,7 +1402,7 @@ }, "lolex": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.3.2.tgz", + "resolved": "http://registry.npmjs.org/lolex/-/lolex-1.3.2.tgz", "integrity": "sha1-fD2mL/yzDw9agKJWbKJORdigHzE=", "dev": true }, @@ -1436,9 +1416,9 @@ } }, "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "dev": true, "requires": { "pseudomap": "1.0.2", @@ -1468,23 +1448,23 @@ }, "mime": { "version": "1.2.11", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", + "resolved": "http://registry.npmjs.org/mime/-/mime-1.2.11.tgz", "integrity": "sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA=", "dev": true }, "mime-db": { - "version": "1.36.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", - "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==", + "version": "1.37.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", + "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==", "dev": true }, "mime-types": { - "version": "2.1.20", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", - "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", + "version": "2.1.21", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", + "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", "dev": true, "requires": { - "mime-db": "1.36.0" + "mime-db": "1.37.0" } }, "mimic-fn": { @@ -1495,12 +1475,12 @@ }, "mimos": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/mimos/-/mimos-3.0.3.tgz", + "resolved": "http://registry.npmjs.org/mimos/-/mimos-3.0.3.tgz", "integrity": "sha1-uRCQcq03jCty9qAQHEPd+ys2ZB8=", "dev": true, "requires": { "hoek": "4.2.1", - "mime-db": "1.36.0" + "mime-db": "1.37.0" } }, "minimatch": { @@ -1514,13 +1494,13 @@ }, "minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { @@ -1529,7 +1509,7 @@ "dependencies": { "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true } @@ -1556,7 +1536,7 @@ "dependencies": { "commander": { "version": "2.15.1", - "resolved": "http://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", "dev": true }, @@ -1670,9 +1650,9 @@ } }, "nan": { - "version": "2.11.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz", - "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==", + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz", + "integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==", "dev": true }, "nice-try": { @@ -1683,7 +1663,7 @@ }, "nigel": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/nigel/-/nigel-2.0.2.tgz", + "resolved": "http://registry.npmjs.org/nigel/-/nigel-2.0.2.tgz", "integrity": "sha1-k6GGb7DFLYc5CqdeKxYfS1x15bE=", "dev": true, "requires": { @@ -1748,7 +1728,7 @@ "dependencies": { "minimist": { "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", "dev": true }, @@ -1809,7 +1789,7 @@ }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, @@ -1851,7 +1831,7 @@ "dev": true, "requires": { "hoek": "4.2.1", - "items": "2.1.1", + "items": "2.1.2", "joi": "10.6.0" }, "dependencies": { @@ -1863,7 +1843,7 @@ "requires": { "hoek": "4.2.1", "isemail": "2.2.1", - "items": "2.1.1", + "items": "2.1.2", "topo": "2.0.2" } } @@ -1876,9 +1856,9 @@ "dev": true }, "psl": { - "version": "1.1.29", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", - "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==", + "version": "1.1.31", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", + "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==", "dev": true }, "punycode": { @@ -1895,7 +1875,7 @@ }, "readable-stream": { "version": "1.0.27-1", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.27-1.tgz", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.27-1.tgz", "integrity": "sha1-a2eYPCA1fO/QfwFlABoW1xDZEHg=", "dev": true, "requires": { @@ -1964,13 +1944,13 @@ "combined-stream": "1.0.7", "extend": "3.0.2", "forever-agent": "0.6.1", - "form-data": "2.3.2", - "har-validator": "5.1.0", + "form-data": "2.3.3", + "har-validator": "5.1.3", "http-signature": "1.2.0", "is-typedarray": "1.0.0", "isstream": "0.1.2", "json-stringify-safe": "5.0.1", - "mime-types": "2.1.20", + "mime-types": "2.1.21", "oauth-sign": "0.9.0", "performance-now": "2.1.0", "qs": "6.5.2", @@ -1993,18 +1973,18 @@ "dev": true }, "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.9.0.tgz", + "integrity": "sha512-TZNye00tI67lwYvzxCxHGjwTNlUV70io54/Ed4j6PscB8xVfuBJpRenI/o6dVk0cY0PYTY27AgCoGGxRnYuItQ==", "dev": true, "requires": { "path-parse": "1.0.6" } }, "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "requires": { "glob": "7.1.3" @@ -2033,14 +2013,14 @@ }, "samsam": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.1.2.tgz", + "resolved": "http://registry.npmjs.org/samsam/-/samsam-1.1.2.tgz", "integrity": "sha1-vsEf3IOp/aBjQBIQ5AF2wwJNFWc=", "dev": true }, "semver": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", - "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", "dev": true }, "set-blocking": { @@ -2082,7 +2062,7 @@ "requires": { "hoek": "4.2.1", "isemail": "2.2.1", - "items": "2.1.1", + "items": "2.1.2", "topo": "2.0.2" } } @@ -2101,7 +2081,7 @@ }, "should-equal": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-0.3.1.tgz", + "resolved": "http://registry.npmjs.org/should-equal/-/should-equal-0.3.1.tgz", "integrity": "sha1-vY6pemdI45+tR2o75v1y68LnK/A=", "dev": true, "requires": { @@ -2131,14 +2111,23 @@ }, "sinon": { "version": "1.17.7", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-1.17.7.tgz", + "resolved": "http://registry.npmjs.org/sinon/-/sinon-1.17.7.tgz", "integrity": "sha1-RUKk9JugxFwF6y6d2dID4rjv4L8=", "dev": true, "requires": { "formatio": "1.1.1", "lolex": "1.3.2", "samsam": "1.1.2", - "util": "0.11.0" + "util": "0.11.1" + } + }, + "somever": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/somever/-/somever-1.0.1.tgz", + "integrity": "sha512-PCDMBcega4n7wuBUKmkiXidF3cOwtHHGg2qJYl0Rkw7StZqORoCgqce7HUuWNta/NAiQhwLDezNnTANxEWPCGA==", + "dev": true, + "requires": { + "hoek": "4.2.1" } }, "source-map": { @@ -2167,14 +2156,14 @@ }, "sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "resolved": "http://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, "sshpk": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", - "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.0.tgz", + "integrity": "sha512-Zhev35/y7hRMcID/upReIvRse+I9SVhyVre/KTJSJQWMz3C3+G+HpO7m1wK/yckEtujKZ7dS4hkVxAnmHaIGVQ==", "dev": true, "requires": { "asn1": "0.2.4", @@ -2195,10 +2184,10 @@ "dev": true, "requires": { "boom": "5.2.0", - "cryptiles": "3.1.2", + "cryptiles": "3.1.4", "hoek": "4.2.1", "iron": "4.0.5", - "items": "2.1.1", + "items": "2.1.2", "joi": "10.6.0" }, "dependencies": { @@ -2210,18 +2199,12 @@ "requires": { "hoek": "4.2.1", "isemail": "2.2.1", - "items": "2.1.1", + "items": "2.1.2", "topo": "2.0.2" } } } }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -2249,9 +2232,15 @@ } } }, + "string_decoder": { + "version": "0.10.31", + "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { @@ -2269,7 +2258,7 @@ }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, @@ -2288,7 +2277,7 @@ }, "superagent": { "version": "0.21.0", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-0.21.0.tgz", + "resolved": "http://registry.npmjs.org/superagent/-/superagent-0.21.0.tgz", "integrity": "sha1-+xUCeYR1HucVIgDmzSHNbhml3oc=", "dev": true, "requires": { @@ -2343,7 +2332,7 @@ }, "form-data": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.1.3.tgz", + "resolved": "http://registry.npmjs.org/form-data/-/form-data-0.1.3.tgz", "integrity": "sha1-TuQ0bm61Ni6DRKAgdb2NvYxzc+o=", "dev": true, "requires": { @@ -2366,7 +2355,7 @@ }, "qs": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-1.2.0.tgz", + "resolved": "http://registry.npmjs.org/qs/-/qs-1.2.0.tgz", "integrity": "sha1-7Qeb4oaCFH5v2aNMwrDB4OxkU+4=", "dev": true } @@ -2374,7 +2363,7 @@ }, "supertest": { "version": "0.15.0", - "resolved": "https://registry.npmjs.org/supertest/-/supertest-0.15.0.tgz", + "resolved": "http://registry.npmjs.org/supertest/-/supertest-0.15.0.tgz", "integrity": "sha1-hhGGld5L5Yhps+6UxF4dCEyn+sU=", "dev": true, "requires": { @@ -2384,13 +2373,13 @@ }, "supports-color": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "resolved": "http://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, "symbol-observable": { "version": "1.0.1", - "resolved": "http://nexus.in.tdw/repository/npm/symbol-observable/-/symbol-observable-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", "dev": true }, @@ -2402,7 +2391,7 @@ }, "topo": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/topo/-/topo-2.0.2.tgz", + "resolved": "http://registry.npmjs.org/topo/-/topo-2.0.2.tgz", "integrity": "sha1-zVYVdSU5BXwNwEkaYhw7xvvh0YI=", "dev": true, "requires": { @@ -2415,7 +2404,7 @@ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "dev": true, "requires": { - "psl": "1.1.29", + "psl": "1.1.31", "punycode": "1.4.1" }, "dependencies": { @@ -2456,9 +2445,9 @@ "dev": true }, "tslint": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.11.0.tgz", - "integrity": "sha1-mPMMAurjzecAYgHkwzywi0hYHu0=", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.12.0.tgz", + "integrity": "sha512-CKEcH1MHUBhoV43SA/Jmy1l24HJJgI0eyLbBNSRyFlsQvb9v6Zdq+Nz2vEOH00nC5SUx4SneJ59PZUS/ARcokQ==", "dev": true, "requires": { "babel-code-frame": "6.26.0", @@ -2469,8 +2458,8 @@ "glob": "7.1.3", "js-yaml": "3.12.0", "minimatch": "3.0.4", - "resolve": "1.8.1", - "semver": "5.5.1", + "resolve": "1.9.0", + "semver": "5.6.0", "tslib": "1.9.3", "tsutils": "2.29.0" }, @@ -2534,8 +2523,7 @@ "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true, - "optional": true + "dev": true }, "typedarray-to-buffer": { "version": "3.1.5", @@ -2589,7 +2577,7 @@ "dependencies": { "lodash": { "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "resolved": "http://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", "dev": true } @@ -2601,10 +2589,19 @@ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "2.1.1" + } + }, "util": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.0.tgz", - "integrity": "sha512-5n12uMzKCjvB2HPFHnbQSjaqAa98L5iIXmHrZCLavuZVe0qe/SJGbDGWlpaHk5lnBkWRDO+dRu1/PgmUYKPPTw==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", "dev": true, "requires": { "inherits": "2.0.3" @@ -2629,7 +2626,7 @@ }, "vise": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/vise/-/vise-2.0.2.tgz", + "resolved": "http://registry.npmjs.org/vise/-/vise-2.0.2.tgz", "integrity": "sha1-awjo+0y3bjpQzW3Q7DczjoEaDTk=", "dev": true, "requires": { @@ -2643,7 +2640,7 @@ "dev": true, "requires": { "debug": "2.6.9", - "nan": "2.11.1", + "nan": "2.12.1", "typedarray-to-buffer": "3.1.5", "yaeti": "0.0.6" }, @@ -2688,7 +2685,7 @@ }, "wrap-ansi": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { @@ -2707,7 +2704,7 @@ }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "resolved": "http://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { diff --git a/package.json b/package.json index 7e7c3e9..d587854 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@hapiness/redis", - "version": "1.4.0", + "version": "1.4.1", "description": "Hapiness module for redis", "main": "commonjs/index.js", "types": "index.d.ts", diff --git a/src/module/managers/redis-client.manager.ts b/src/module/managers/redis-client.manager.ts index f3ad757..85c594b 100644 --- a/src/module/managers/redis-client.manager.ts +++ b/src/module/managers/redis-client.manager.ts @@ -4,7 +4,7 @@ import * as redis_commands from 'redis-commands'; import * as EventEmitter from 'events'; -import { Observable, TimeoutError } from 'rxjs'; +import { Observable, TimeoutError, Subscription } from 'rxjs'; import { URL } from 'url'; import { RedisConfig } from '../interfaces'; @@ -56,8 +56,11 @@ export class RedisClientManager { private _config: RedisConfig; private _client: RedisClient; private _redisClientObs: HapinessRedisClient; + private _pingCheckSubscription: Subscription; constructor(config: RedisConfig) { + this._pingCheckSubscription = undefined; + // If no retry strategy provided, we'll use the default one config.retry_strategy = config.retry_strategy || DefaultValues.RETRY_STRATEGY(config.reconnect_interval); @@ -77,6 +80,13 @@ export class RedisClientManager { return Observable .create( observer => { + // If we are comming there because of the timeout, the client + // probably exists so kick it before recreating it + if (this._client) { + this._client.removeAllListeners(); + this._client = undefined; + } + this._client = createClient(this._config); this.createObservableClient(); @@ -93,7 +103,11 @@ export class RedisClientManager { ) .do(() => { if (this._config && this._config.ping_keepalive_interval) { - Observable + if (this._pingCheckSubscription) { + this._pingCheckSubscription.unsubscribe(); + this._pingCheckSubscription = undefined; + } + this._pingCheckSubscription = Observable .interval(this._config.ping_keepalive_interval * 1000) .do(_ => debug(`Sending ping to redis...`)) .flatMap(() => this._redisClientObs.ping()) @@ -104,6 +118,13 @@ export class RedisClientManager { } createObservableClient() { + // If we are comming there because of the timeout, the client + // probably exists so kick it before recreating it + if (this._redisClientObs) { + this._redisClientObs.removeAllListeners(); + this._redisClientObs = undefined; + } + const redisClientObs: any = new EventEmitter(); const sendCommand = this.sendCommand.bind(this); const client = this._client; @@ -148,7 +169,9 @@ export class RedisClientManager { observer.complete(); } }); - }).timeout((this._config.command_timeout || 2) * 1000).retryWhen(e => + }) + .timeout((this._config.command_timeout || 2) * 1000) + .retryWhen(e => e.flatMap(err => { if (err instanceof TimeoutError) { this._client.end(true);