rate-limiter-flexible 8.3.0 → 9.0.0

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.
@@ -1,34 +1,6 @@
1
1
  const RateLimiterStoreAbstract = require('./RateLimiterStoreAbstract');
2
2
  const RateLimiterRes = require('./RateLimiterRes');
3
3
 
4
- /**
5
- * Get MongoDB driver version as upsert options differ
6
- * @params {Object} Client instance
7
- * @returns {Object} Version Object containing major, feature & minor versions.
8
- */
9
- function getDriverVersion(client) {
10
- try {
11
- const _client = client.client ? client.client : client;
12
-
13
- let _v = [0, 0, 0];
14
- if (typeof _client.topology === 'undefined') {
15
- const { version } = _client.options.metadata.driver;
16
- _v = version.split('|', 1)[0].split('.').map(v => parseInt(v));
17
- } else {
18
- const { version } = _client.topology.s.options.metadata.driver;
19
- _v = version.split('.').map(v => parseInt(v));
20
- }
21
-
22
- return {
23
- major: _v[0],
24
- feature: _v[1],
25
- patch: _v[2],
26
- };
27
- } catch (err) {
28
- return { major: 0, feature: 0, patch: 0 };
29
- }
30
- }
31
-
32
4
  class RateLimiterMongo extends RateLimiterStoreAbstract {
33
5
  /**
34
6
  *
@@ -59,11 +31,9 @@ class RateLimiterMongo extends RateLimiterStoreAbstract {
59
31
  .then((conn) => {
60
32
  this.client = conn;
61
33
  this._initCollection();
62
- this._driverVersion = getDriverVersion(this.client);
63
34
  });
64
35
  } else {
65
36
  this._initCollection();
66
- this._driverVersion = getDriverVersion(this.client);
67
37
  }
68
38
  }
69
39
 
@@ -198,20 +168,11 @@ class RateLimiterMongo extends RateLimiterStoreAbstract {
198
168
  upsertData.$setOnInsert = Object.assign(upsertData.$setOnInsert, docAttrs);
199
169
  }
200
170
 
201
- // Options for collection updates differ between driver versions
171
+ // All supported MongoDB drivers (3.6.7+) use returnDocument: 'after'
202
172
  const upsertOptions = {
203
173
  upsert: true,
174
+ returnDocument: 'after',
204
175
  };
205
- if ((this._driverVersion.major >= 4) ||
206
- (this._driverVersion.major === 3 &&
207
- (this._driverVersion.feature >=7) ||
208
- (this._driverVersion.feature >= 6 &&
209
- this._driverVersion.patch >= 7 )))
210
- {
211
- upsertOptions.returnDocument = 'after';
212
- } else {
213
- upsertOptions.returnOriginal = false;
214
- }
215
176
 
216
177
  /*
217
178
  * 1. Find actual limit and increment points
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rate-limiter-flexible",
3
- "version": "8.3.0",
3
+ "version": "9.0.0",
4
4
  "description": "Node.js atomic and non-atomic counters, rate limiting tools, protection from DoS and brute-force attacks at scale",
5
5
  "main": "index.js",
6
6
  "scripts": {