diff --git a/lib/consistent_hashing.js b/lib/consistent_hashing.js index bb90d5d..73ac174 100644 --- a/lib/consistent_hashing.js +++ b/lib/consistent_hashing.js @@ -93,7 +93,7 @@ ConsistentHashing.prototype.getNodePosition = function(hash) { ConsistentHashing.prototype.getRingLength = function() { - return Object.keys(this.ring).length; + return this.keys.length; }; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..c1f8211 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,247 @@ +{ + "name": "consistent-hashing", + "version": "0.3.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "consistent-hashing", + "version": "0.3.0", + "license": "MIT", + "devDependencies": { + "mocha": "~> 2.3", + "should": "~> 7.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/commander": { + "version": "2.3.0", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/commander/-/commander-2.3.0.tgz", + "integrity": "sha512-CD452fnk0jQyk3NfnK+KkR/hUPoHt5pVaKHogtyyv3N0U4QfAal9W0/rXLOg/vVZgQKa7jdtXypKs1YAip11uQ==", + "dev": true, + "engines": { + "node": ">= 0.6.x" + } + }, + "node_modules/debug": { + "version": "2.2.0", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/debug/-/debug-2.2.0.tgz", + "integrity": "sha512-X0rGvJcskG1c3TgSCPqHJ0XJgwlcvOC7elJ5Y0hYuKBZoVqWpAMfLOeIh2UI/DCQ5ruodIjvsugZtjUYUw2pUw==", + "dev": true, + "dependencies": { + "ms": "0.7.1" + } + }, + "node_modules/diff": { + "version": "1.4.0", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/diff/-/diff-1.4.0.tgz", + "integrity": "sha512-VzVc42hMZbYU9Sx/ltb7KYuQ6pqAw+cbFWVy4XKdkuEL2CFaRLGEnISPs7YdzaUGpi+CpIqvRmu7hPQ4T7EQ5w==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.2", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz", + "integrity": "sha512-cQpUid7bdTUnFin8S7BnNdOk+/eDqQmKgCANSyd/jAhrKEvxUvr9VQ8XZzXiOtest8NLfk3FSBZzwvemZNQ6Vg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/glob": { + "version": "3.2.3", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/glob/-/glob-3.2.3.tgz", + "integrity": "sha512-WPaLsMHD1lYEqAmIQI6VOJSPwuBdGShDWnj1yUo0vQqEO809R8W3LM9OVU13CnnDhyv/EiNwOtxEW74SmrzS6w==", + "dev": true, + "dependencies": { + "graceful-fs": "~2.0.0", + "inherits": "2", + "minimatch": "~0.2.11" + }, + "engines": { + "node": "*" + } + }, + "node_modules/graceful-fs": { + "version": "2.0.3", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/graceful-fs/-/graceful-fs-2.0.3.tgz", + "integrity": "sha512-hcj/NTUWv+C3MbqrVb9F+aH6lvTwEHJdx2foBxlrVq5h6zE8Bfu4pv4CAAqbDcZrw/9Ak5lsRXlY9Ao8/F0Tuw==", + "deprecated": "please upgrade to graceful-fs 4 for compatibility with current and future versions of Node.js", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/growl": { + "version": "1.8.1", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/growl/-/growl-1.8.1.tgz", + "integrity": "sha512-Hq61svqhXHBTY80KsuLrItJ9A0YP1PSeiS4hhi77NcPQf+F+yagOSkhuhZdND7NfAcpHm495FKUTmRcygzF0OA==", + "dev": true + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/jade": { + "version": "0.26.3", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/jade/-/jade-0.26.3.tgz", + "integrity": "sha512-mkk3vzUHFjzKjpCXeu+IjXeZD+QOTjUUdubgmHtHTDwvAO2ZTkMTTVrapts5CWz3JvJryh/4KWZpjeZrCepZ3A==", + "deprecated": "Jade has been renamed to pug, please install the latest version of pug instead of jade", + "dev": true, + "dependencies": { + "commander": "0.6.1", + "mkdirp": "0.3.0" + }, + "bin": { + "jade": "bin/jade" + } + }, + "node_modules/jade/node_modules/commander": { + "version": "0.6.1", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/commander/-/commander-0.6.1.tgz", + "integrity": "sha512-0fLycpl1UMTGX257hRsu/arL/cUbcvQM4zMKwvLvzXtfdezIV4yotPS2dYtknF+NmEfWSoCEF6+hj9XLm/6hEw==", + "dev": true, + "engines": { + "node": ">= 0.4.x" + } + }, + "node_modules/jade/node_modules/mkdirp": { + "version": "0.3.0", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/mkdirp/-/mkdirp-0.3.0.tgz", + "integrity": "sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew==", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/lru-cache": { + "version": "2.7.3", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha512-WpibWJ60c3AgAz8a2iYErDrcT2C7OmKnsWhIcHOjkUHFjkXncJhtLxNSqUmxRxRunpb5I8Vprd7aNSd2NtksJQ==", + "dev": true + }, + "node_modules/minimatch": { + "version": "0.2.14", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha512-zZ+Jy8lVWlvqqeM8iZB7w7KmQkoJn8djM585z88rywrEbzoqawVa9FR5p2hwD+y74nfuKOjmNvi9gtWJNLqHvA==", + "deprecated": "Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue", + "dev": true, + "dependencies": { + "lru-cache": "2", + "sigmund": "~1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "0.0.8", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha512-miQKw5Hv4NS1Psg2517mV4e4dYNaO3++hjAvLOAzKqZ61rH8NS1SK+vbfBWZ5PY/Me/bEWhUwqMghEW5Fb9T7Q==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "0.5.0", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/mkdirp/-/mkdirp-0.5.0.tgz", + "integrity": "sha512-xjjNGy+ry1lhtIKcr2PT6ok3aszhQfgrUDp4OZLHacgRgFmF6XR9XCOJVcXlVGQonIqXcK1DvqgKKQOPWYGSfw==", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "dev": true, + "dependencies": { + "minimist": "0.0.8" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mocha": { + "version": "2.3.4", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/mocha/-/mocha-2.3.4.tgz", + "integrity": "sha512-iuxi1eLrRY6ZVq5OmsQicFwuL5n43TizGgTnlfKg2IbQnFvjjMet/T84yfR8DFjRl0O3m4AZZ+6KqZfDAps9aA==", + "dev": true, + "dependencies": { + "commander": "2.3.0", + "debug": "2.2.0", + "diff": "1.4.0", + "escape-string-regexp": "1.0.2", + "glob": "3.2.3", + "growl": "1.8.1", + "jade": "0.26.3", + "mkdirp": "0.5.0", + "supports-color": "1.2.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 0.8.x" + } + }, + "node_modules/ms": { + "version": "0.7.1", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/ms/-/ms-0.7.1.tgz", + "integrity": "sha512-lRLiIR9fSNpnP6TC4v8+4OU7oStC01esuNowdQ34L+Gk8e5Puoc88IqJ+XAY/B3Mn2ZKis8l8HX90oU8ivzUHg==", + "dev": true + }, + "node_modules/should": { + "version": "7.1.1", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/should/-/should-7.1.1.tgz", + "integrity": "sha512-llSOcffBvYZGDZk6xie5jazh1RonS/MuknPrZOOu/uqcUFBGHFhWo+2fseOekmylqyZu9BiQYkAp3zeQFiQFmA==", + "dev": true, + "dependencies": { + "should-equal": "0.5.0", + "should-format": "0.3.1", + "should-type": "0.2.0" + } + }, + "node_modules/should-equal": { + "version": "0.5.0", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/should-equal/-/should-equal-0.5.0.tgz", + "integrity": "sha512-y+N0u99fC0EjLbWovcpwSziVnzhEEmJo7//4DKM5Ioc0FfqDKnDNNnDXjWCU2G9SoGLnJnfdq0NiOoZFoDBEqA==", + "dev": true, + "dependencies": { + "should-type": "0.2.0" + } + }, + "node_modules/should-format": { + "version": "0.3.1", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/should-format/-/should-format-0.3.1.tgz", + "integrity": "sha512-CBN7ZbI2QpfNEmex46Y45YanmvAgBWNhUsKxFAsvaahNIcFbezERyQJwwlI+xFyHXjDHQHn9/Fbs81bonjqmIg==", + "dev": true, + "dependencies": { + "should-type": "0.2.0" + } + }, + "node_modules/should-type": { + "version": "0.2.0", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/should-type/-/should-type-0.2.0.tgz", + "integrity": "sha512-ixbc1p6gw4W29fp4MifFynWVQvuqfuZjib+y1tWezbjinoXu0eab/rXxLDP6drfZXlz6lZBwuzHJrs/BjLCLuQ==", + "dev": true + }, + "node_modules/sigmund": { + "version": "1.0.1", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==", + "dev": true + }, + "node_modules/supports-color": { + "version": "1.2.0", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/supports-color/-/supports-color-1.2.0.tgz", + "integrity": "sha512-mS5xsnjTh5b7f2DM6bch6lR582UCOTphzINlZnDsfpIRrwI6r58rb6YSSGsdexkm8qw2bBVO2ID2fnJOTuLiPA==", + "dev": true, + "bin": { + "supports-color": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + } + } +}