rate-limiter-flexible 2.3.3 → 2.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,21 +4,22 @@ const RateLimiterRes = require('./RateLimiterRes');
4
4
  /**
5
5
  * Get MongoDB driver version as upsert options differ
6
6
  * @params {Object} Client instance
7
- * @returns {Number|undefined} Major version
7
+ * @returns {Object} Version Object containing major, feature & minor versions.
8
8
  */
9
9
  function getDriverVersion(client) {
10
10
  try {
11
- let version;
12
- if (client.client) {
13
- ({ version } = client.client.topology.s.options.metadata.driver);
14
- } else {
15
- ({ version } = client.topology.s.options.metadata.driver);
16
- }
17
- const majorVersion = parseInt(version);
11
+ const _client = client.client ? client.client : client;
18
12
 
19
- return majorVersion;
13
+ const { version } = _client.topology.s.options.metadata.driver;
14
+ const _v = version.split('.').map(v => parseInt(v));
15
+
16
+ return {
17
+ major: _v[0],
18
+ feature: _v[1],
19
+ patch: _v[2],
20
+ };
20
21
  } catch (err) {
21
- return undefined;
22
+ return { major: 0, feature: 0, patch: 0 };
22
23
  }
23
24
  }
24
25
 
@@ -174,7 +175,12 @@ class RateLimiterMongo extends RateLimiterStoreAbstract {
174
175
  const upsertOptions = {
175
176
  upsert: true,
176
177
  };
177
- if (this._driverVersion >= 4) {
178
+ if ((this._driverVersion.major >= 4) ||
179
+ (this._driverVersion.major === 3 &&
180
+ (this._driverVersion.feature >=7) ||
181
+ (this._driverVersion.feature >= 6 &&
182
+ this._driverVersion.patch >= 7 )))
183
+ {
178
184
  upsertOptions.returnDocument = 'after';
179
185
  } else {
180
186
  upsertOptions.returnOriginal = false;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rate-limiter-flexible",
3
- "version": "2.3.3",
3
+ "version": "2.3.4",
4
4
  "description": "Node.js rate limiter by key and protection from DDoS and Brute-Force attacks in process Memory, Redis, MongoDb, Memcached, MySQL, PostgreSQL, Cluster or PM",
5
5
  "main": "index.js",
6
6
  "scripts": {