@mondart/nestjs-common-module-bottleneck 3.2.11 → 3.2.12

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 +1 @@
1
- {"version":3,"file":"bottleneck.service.d.ts","sourceRoot":"","sources":["../../src/services/bottleneck.service.ts"],"names":[],"mappings":"AACA,OAAO,EAA8B,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAEL,uBAAuB,EACxB,MAAM,4CAA4C,CAAC;AAWpD,qBACa,iBAAkB,YAAW,eAAe;IASrD,OAAO,CAAC,QAAQ,CAAC,OAAO;IAR1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAEpB;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmC;gBAItC,OAAO,EAAE,uBAAuB;YAwCrC,UAAU;IAsBxB,OAAO,CAAC,yBAAyB;YAOnB,4BAA4B;IAwBpC,cAAc,CAAC,CAAC,EACpB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACtB,IAAI,CAAC,EAAE,UAAU,CAAC,kBAAkB,GACnC,OAAO,CAAC,CAAC,CAAC;IAWP,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAmB/D,eAAe;CAGtB"}
1
+ {"version":3,"file":"bottleneck.service.d.ts","sourceRoot":"","sources":["../../src/services/bottleneck.service.ts"],"names":[],"mappings":"AACA,OAAO,EAA8B,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAEL,uBAAuB,EACxB,MAAM,4CAA4C,CAAC;AA8BpD,qBACa,iBAAkB,YAAW,eAAe;IASrD,OAAO,CAAC,QAAQ,CAAC,OAAO;IAR1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAEpB;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmC;gBAItC,OAAO,EAAE,uBAAuB;YAwCrC,UAAU;IAsBxB,OAAO,CAAC,yBAAyB;YAOnB,4BAA4B;IA6BpC,cAAc,CAAC,CAAC,EACpB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACtB,IAAI,CAAC,EAAE,UAAU,CAAC,kBAAkB,GACnC,OAAO,CAAC,CAAC,CAAC;IAWP,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAmB/D,eAAe;CAGtB"}
@@ -21,6 +21,17 @@ const common_1 = require("@nestjs/common");
21
21
  const bottleneck_1 = __importDefault(require("bottleneck"));
22
22
  const bottleneck_options_interface_1 = require("../interfaces/bottleneck-options.interface");
23
23
  const ioredis_1 = __importDefault(require("ioredis"));
24
+ class BottleneckRedis extends ioredis_1.default {
25
+ sendCommand(...args) {
26
+ return Promise.resolve(super.sendCommand(...args)).catch((error) => {
27
+ if (error instanceof Error &&
28
+ /^ERR (UNKNOWN_CLIENT|SETTINGS_KEY_NOT_FOUND)$/.test(error.message)) {
29
+ error.message = error.message.slice(4);
30
+ }
31
+ throw error;
32
+ });
33
+ }
34
+ }
24
35
  let BottleneckService = BottleneckService_1 = class BottleneckService {
25
36
  constructor(options) {
26
37
  this.options = options;
@@ -32,7 +43,7 @@ let BottleneckService = BottleneckService_1 = class BottleneckService {
32
43
  const redisOptions = useRedis && redis
33
44
  ? {
34
45
  datastore: 'ioredis',
35
- Redis: ioredis_1.default,
46
+ Redis: BottleneckRedis,
36
47
  clientOptions: {
37
48
  host: redis.host,
38
49
  port: redis.port,
@@ -66,12 +77,17 @@ let BottleneckService = BottleneckService_1 = class BottleneckService {
66
77
  /(?:^|\s)SETTINGS_KEY_NOT_FOUND$/.test(error.message));
67
78
  }
68
79
  async scheduleWithSettingsRecovery(key, task, opts) {
80
+ let taskStarted = false;
81
+ const guardedTask = () => {
82
+ taskStarted = true;
83
+ return task();
84
+ };
69
85
  try {
70
86
  const limiter = await this.getLimiter(key, opts);
71
- return await limiter.schedule(task);
87
+ return await limiter.schedule(guardedTask);
72
88
  }
73
89
  catch (error) {
74
- if (!this.isMissingSettingsKeyError(error))
90
+ if (taskStarted || !this.isMissingSettingsKeyError(error))
75
91
  throw error;
76
92
  this.logger.warn(`Recreating limiter for key ${key} after its Redis settings key disappeared`);
77
93
  await this.group.deleteKey(key);
@@ -1 +1 @@
1
- {"version":3,"file":"bottleneck.service.js","sourceRoot":"","sources":["../../src/services/bottleneck.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bottleneck.service.js","sourceRoot":"","sources":["../../src/services/bottleneck.service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mondart/nestjs-common-module-bottleneck",
3
- "version": "3.2.11",
3
+ "version": "3.2.12",
4
4
  "description": "Bottleneck throttling and queue utilities for NestJS.",
5
5
  "author": {
6
6
  "name": "Mondart"
@@ -17,7 +17,7 @@
17
17
  "build": "tsc -p tsconfig.json"
18
18
  },
19
19
  "dependencies": {
20
- "@mondart/nestjs-common-module-core": "3.2.9",
20
+ "@mondart/nestjs-common-module-core": "3.2.10",
21
21
  "@nestjs/cqrs": "^11.0.1",
22
22
  "bottleneck": "^2.19.5",
23
23
  "ioredis": "^5.11.1"