@rnw-community/nestjs-rxjs-lock 0.53.0 → 0.54.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.
- package/dist/cjs/nestjs-rxjs-lock-module.options.d.ts +2 -2
- package/dist/cjs/nestjs-rxjs-lock-module.options.d.ts.map +1 -1
- package/dist/cjs/nestjs-rxjs-lock-module.options.js +4 -0
- package/dist/cjs/nestjs-rxjs-lock-module.options.js.map +1 -1
- package/dist/cjs/nestjs-rxjs-lock-service/nestjs-rxjs-lock.service.d.ts +3 -3
- package/dist/cjs/nestjs-rxjs-lock-service/nestjs-rxjs-lock.service.d.ts.map +1 -1
- package/dist/cjs/nestjs-rxjs-lock-service/nestjs-rxjs-lock.service.js +23 -8
- package/dist/cjs/nestjs-rxjs-lock-service/nestjs-rxjs-lock.service.js.map +1 -1
- package/dist/cjs/nestjs-rxjs-lock.module.d.ts.map +1 -1
- package/dist/cjs/nestjs-rxjs-lock.module.js +7 -3
- package/dist/cjs/nestjs-rxjs-lock.module.js.map +1 -1
- package/dist/cjs/tsconfig.build-cjs.tsbuildinfo +1 -1
- package/dist/esm/nestjs-rxjs-lock-module.options.d.ts +2 -2
- package/dist/esm/nestjs-rxjs-lock-module.options.d.ts.map +1 -1
- package/dist/esm/nestjs-rxjs-lock-module.options.js +4 -0
- package/dist/esm/nestjs-rxjs-lock-module.options.js.map +1 -1
- package/dist/esm/nestjs-rxjs-lock-service/nestjs-rxjs-lock.service.d.ts +3 -3
- package/dist/esm/nestjs-rxjs-lock-service/nestjs-rxjs-lock.service.d.ts.map +1 -1
- package/dist/esm/nestjs-rxjs-lock-service/nestjs-rxjs-lock.service.js +24 -8
- package/dist/esm/nestjs-rxjs-lock-service/nestjs-rxjs-lock.service.js.map +1 -1
- package/dist/esm/nestjs-rxjs-lock.module.d.ts.map +1 -1
- package/dist/esm/nestjs-rxjs-lock.module.js +3 -2
- package/dist/esm/nestjs-rxjs-lock.module.js.map +1 -1
- package/dist/esm/tsconfig.build-esm.tsbuildinfo +1 -1
- package/package.json +9 -7
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type
|
|
2
|
-
export interface NestJSRxJSLockModuleOptions extends
|
|
1
|
+
import type { Settings } from 'redlock';
|
|
2
|
+
export interface NestJSRxJSLockModuleOptions extends Settings {
|
|
3
3
|
defaultExpireMs: number;
|
|
4
4
|
}
|
|
5
5
|
export declare const defaultNestJSRxJSLockModuleOptions: NestJSRxJSLockModuleOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nestjs-rxjs-lock-module.options.d.ts","sourceRoot":"","sources":["../../src/nestjs-rxjs-lock-module.options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"nestjs-rxjs-lock-module.options.d.ts","sourceRoot":"","sources":["../../src/nestjs-rxjs-lock-module.options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,WAAW,2BAA4B,SAAQ,QAAQ;IACzD,eAAe,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,kCAAkC,EAAE,2BAOhD,CAAC"}
|
|
@@ -4,5 +4,9 @@ exports.defaultNestJSRxJSLockModuleOptions = void 0;
|
|
|
4
4
|
exports.defaultNestJSRxJSLockModuleOptions = {
|
|
5
5
|
defaultExpireMs: 10000,
|
|
6
6
|
retryCount: 0,
|
|
7
|
+
driftFactor: 0.01,
|
|
8
|
+
retryDelay: 200,
|
|
9
|
+
retryJitter: 200,
|
|
10
|
+
automaticExtensionThreshold: 500,
|
|
7
11
|
};
|
|
8
12
|
//# sourceMappingURL=nestjs-rxjs-lock-module.options.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nestjs-rxjs-lock-module.options.js","sourceRoot":"","sources":["../../src/nestjs-rxjs-lock-module.options.ts"],"names":[],"mappings":";;;AAMa,QAAA,kCAAkC,GAAgC;IAC3E,eAAe,EAAE,KAAK;IACtB,UAAU,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"nestjs-rxjs-lock-module.options.js","sourceRoot":"","sources":["../../src/nestjs-rxjs-lock-module.options.ts"],"names":[],"mappings":";;;AAMa,QAAA,kCAAkC,GAAgC;IAC3E,eAAe,EAAE,KAAK;IACtB,UAAU,EAAE,CAAC;IACb,WAAW,EAAE,IAAI;IACjB,UAAU,EAAE,GAAG;IACf,WAAW,EAAE,GAAG;IAChB,2BAA2B,EAAE,GAAG;CACnC,CAAC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import { Redis } from 'ioredis';
|
|
1
2
|
import { type Observable } from 'rxjs';
|
|
2
3
|
import type { NestJSRxJSLockModuleOptions } from '../nestjs-rxjs-lock-module.options';
|
|
3
|
-
import type { RedisService } from 'nestjs-redis';
|
|
4
4
|
export declare abstract class NestJSRxJSLockService<E = string> {
|
|
5
|
-
readonly redis:
|
|
5
|
+
readonly redis: Redis;
|
|
6
6
|
readonly options: NestJSRxJSLockModuleOptions;
|
|
7
7
|
private readonly lock;
|
|
8
8
|
private readonly expireInMs;
|
|
9
|
-
protected constructor(redis:
|
|
9
|
+
protected constructor(redis: Redis, options: NestJSRxJSLockModuleOptions);
|
|
10
10
|
/**
|
|
11
11
|
* RxJS wrapper for redlock acquire lock method
|
|
12
12
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nestjs-rxjs-lock.service.d.ts","sourceRoot":"","sources":["../../../src/nestjs-rxjs-lock-service/nestjs-rxjs-lock.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"nestjs-rxjs-lock.service.d.ts","sourceRoot":"","sources":["../../../src/nestjs-rxjs-lock-service/nestjs-rxjs-lock.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,KAAK,UAAU,EAA6B,MAAM,MAAM,CAAC;AAKlE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAEtF,8BAAsB,qBAAqB,CAAC,CAAC,GAAG,MAAM;IAIb,QAAQ,CAAC,KAAK,EAAE,KAAK;IAAE,QAAQ,CAAC,OAAO,EAAE,2BAA2B;IAHzG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAU;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAEpC,SAAS,aAAqC,KAAK,EAAE,KAAK,EAAW,OAAO,EAAE,2BAA2B;IAOzG;;;;;;;;;;OAUG;IACH,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,SAAkB,GAAG,UAAU,CAAC,CAAC,CAAC;IAQ7G,OAAO,CAAC,MAAM,CAAC,YAAY;CAG9B"}
|
|
@@ -1,22 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
2
14
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
15
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
16
|
};
|
|
5
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
18
|
exports.NestJSRxJSLockService = void 0;
|
|
19
|
+
const ioredis_1 = require("@nestjs-modules/ioredis");
|
|
20
|
+
const ioredis_2 = require("ioredis");
|
|
7
21
|
const redlock_1 = __importDefault(require("redlock"));
|
|
8
22
|
const rxjs_1 = require("rxjs");
|
|
9
23
|
const shared_1 = require("@rnw-community/shared");
|
|
10
|
-
class NestJSRxJSLockService {
|
|
11
|
-
constructor(
|
|
12
|
-
// TODO: Can we avoid nestjs-redis dependency?
|
|
13
|
-
redis, options) {
|
|
24
|
+
let NestJSRxJSLockService = class NestJSRxJSLockService {
|
|
25
|
+
constructor(redis, options) {
|
|
14
26
|
this.redis = redis;
|
|
15
27
|
this.options = options;
|
|
16
28
|
const { defaultExpireMs, ...redlockOptions } = options;
|
|
17
29
|
this.expireInMs = options.defaultExpireMs;
|
|
18
|
-
|
|
19
|
-
this.lock = new redlock_1.default(redisInstances, redlockOptions);
|
|
30
|
+
this.lock = new redlock_1.default([redis], redlockOptions);
|
|
20
31
|
}
|
|
21
32
|
/**
|
|
22
33
|
* RxJS wrapper for redlock acquire lock method
|
|
@@ -31,11 +42,15 @@ class NestJSRxJSLockService {
|
|
|
31
42
|
*/
|
|
32
43
|
lock$(name, prefix, handler$, expireInMs = this.expireInMs) {
|
|
33
44
|
const lockName = NestJSRxJSLockService.generateName(name, prefix);
|
|
34
|
-
return (0, rxjs_1.from)(this.lock.acquire([lockName], expireInMs)).pipe((0, rxjs_1.concatMap)(lock => handler$().pipe((0, rxjs_1.finalize)(() => void lock.
|
|
45
|
+
return (0, rxjs_1.from)(this.lock.acquire([lockName], expireInMs)).pipe((0, rxjs_1.concatMap)(lock => handler$().pipe((0, rxjs_1.finalize)(() => void lock.release().catch(() => void 0)))));
|
|
35
46
|
}
|
|
36
47
|
static generateName(name, prefix) {
|
|
37
48
|
return ['lock', prefix, name].filter(shared_1.isNotEmptyString).join(':');
|
|
38
49
|
}
|
|
39
|
-
}
|
|
50
|
+
};
|
|
51
|
+
NestJSRxJSLockService = __decorate([
|
|
52
|
+
__param(0, (0, ioredis_1.InjectRedis)()),
|
|
53
|
+
__metadata("design:paramtypes", [ioredis_2.Redis, Object])
|
|
54
|
+
], NestJSRxJSLockService);
|
|
40
55
|
exports.NestJSRxJSLockService = NestJSRxJSLockService;
|
|
41
56
|
//# sourceMappingURL=nestjs-rxjs-lock.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nestjs-rxjs-lock.service.js","sourceRoot":"","sources":["../../../src/nestjs-rxjs-lock-service/nestjs-rxjs-lock.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nestjs-rxjs-lock.service.js","sourceRoot":"","sources":["../../../src/nestjs-rxjs-lock-service/nestjs-rxjs-lock.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,qDAAsD;AACtD,qCAAgC;AAChC,sDAA8B;AAC9B,+BAAkE;AAElE,kDAAyD;AAKlD,IAAe,qBAAqB,GAApC,MAAe,qBAAqB;IAIvC,YAA8C,KAAY,EAAW,OAAoC;QAA3D,UAAK,GAAL,KAAK,CAAO;QAAW,YAAO,GAAP,OAAO,CAA6B;QACrG,MAAM,EAAE,eAAe,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,CAAC;QACvD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC;QAE1C,IAAI,CAAC,IAAI,GAAG,IAAI,iBAAO,CAAC,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAI,IAAY,EAAE,MAAS,EAAE,QAA6B,EAAE,UAAU,GAAG,IAAI,CAAC,UAAU;QACzF,MAAM,QAAQ,GAAG,qBAAqB,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAElE,OAAO,IAAA,WAAI,EAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CACvD,IAAA,gBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAA,eAAQ,EAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAC9F,CAAC;IACN,CAAC;IAEO,MAAM,CAAC,YAAY,CAAI,IAAY,EAAE,MAAS;QAClD,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,yBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrE,CAAC;CACJ,CAAA;AAjCqB,qBAAqB;IAIhB,WAAA,IAAA,qBAAW,GAAE,CAAA;qCAAiB,eAAK;GAJxC,qBAAqB,CAiC1C;AAjCqB,sDAAqB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nestjs-rxjs-lock.module.d.ts","sourceRoot":"","sources":["../../src/nestjs-rxjs-lock.module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAsB,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"nestjs-rxjs-lock.module.d.ts","sourceRoot":"","sources":["../../src/nestjs-rxjs-lock.module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAsB,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAInF,OAAO,EAAE,KAAK,2BAA2B,EAAsC,MAAM,mCAAmC,CAAC;AACzH,OAAO,EAAE,qBAAqB,EAAE,MAAM,qDAAqD,CAAC;AAE5F,qBACa,oBAAoB;IAC7B,MAAM,CAAC,kBAAkB,CAAC,CAAC,GAAG,MAAM,EAChC,OAAO,GAAE,OAAO,CAAC,2BAA2B,CAAM,GACnD,CAAC,aAAa,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;CAiBrD"}
|
|
@@ -8,12 +8,16 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
11
14
|
var NestJSRxJSLockModule_1;
|
|
12
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
16
|
exports.NestJSRxJSLockModule = void 0;
|
|
14
17
|
// eslint-disable-next-line max-classes-per-file
|
|
15
18
|
const common_1 = require("@nestjs/common");
|
|
16
|
-
const
|
|
19
|
+
const ioredis_1 = require("@nestjs-modules/ioredis");
|
|
20
|
+
const ioredis_2 = __importDefault(require("ioredis"));
|
|
17
21
|
const nestjs_rxjs_lock_module_options_1 = require("./nestjs-rxjs-lock-module.options");
|
|
18
22
|
const nestjs_rxjs_lock_service_1 = require("./nestjs-rxjs-lock-service/nestjs-rxjs-lock.service");
|
|
19
23
|
let NestJSRxJSLockModule = NestJSRxJSLockModule_1 = class NestJSRxJSLockModule {
|
|
@@ -25,10 +29,10 @@ let NestJSRxJSLockModule = NestJSRxJSLockModule_1 = class NestJSRxJSLockModule {
|
|
|
25
29
|
};
|
|
26
30
|
LockService = __decorate([
|
|
27
31
|
(0, common_1.Injectable)(),
|
|
28
|
-
__metadata("design:paramtypes", [
|
|
32
|
+
__metadata("design:paramtypes", [ioredis_2.default])
|
|
29
33
|
], LockService);
|
|
30
34
|
const LockModule = {
|
|
31
|
-
imports: [
|
|
35
|
+
imports: [ioredis_1.RedisModule],
|
|
32
36
|
module: NestJSRxJSLockModule_1,
|
|
33
37
|
providers: [LockService],
|
|
34
38
|
exports: [LockService],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nestjs-rxjs-lock.module.js","sourceRoot":"","sources":["../../src/nestjs-rxjs-lock.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nestjs-rxjs-lock.module.js","sourceRoot":"","sources":["../../src/nestjs-rxjs-lock.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAAgD;AAChD,2CAAmF;AACnF,qDAAsD;AACtD,sDAA4B;AAE5B,uFAAyH;AACzH,kGAA4F;AAGrF,IAAM,oBAAoB,4BAA1B,MAAM,oBAAoB;IACtB,AAAP,MAAM,CAAC,kBAAkB,CACrB,UAAgD,EAAE;QAElD,IACM,WAAW,GADjB,MACM,WAAY,SAAQ,gDAAwB;YAC9C,YAAY,KAAY;gBACpB,KAAK,CAAC,KAAK,EAAE,EAAE,GAAG,oEAAkC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;YACxE,CAAC;SACJ,CAAA;QAJK,WAAW;YADhB,IAAA,mBAAU,GAAE;6CAEU,iBAAK;WADtB,WAAW,CAIhB;QAED,MAAM,UAAU,GAAG;YACf,OAAO,EAAE,CAAC,qBAAW,CAAC;YACtB,MAAM,EAAE,sBAAoB;YAC5B,SAAS,EAAE,CAAC,WAAW,CAAC;YACxB,OAAO,EAAE,CAAC,WAAW,CAAC;SACzB,CAAC;QAEF,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACrC,CAAC;CACJ,CAAA;AApBY,oBAAoB;IADhC,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,oBAAoB,CAoBhC;AApBY,oDAAoB"}
|