murlock 4.0.0 → 4.1.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/decorators/murlock.decorator.d.ts +2 -1
- package/dist/decorators/murlock.decorator.js +32 -9
- package/dist/decorators/murlock.decorator.js.map +1 -1
- package/dist/murlock.module.js +3 -9
- package/dist/murlock.module.js.map +1 -1
- package/dist/murlock.service.d.ts +3 -2
- package/dist/murlock.service.js +31 -11
- package/dist/murlock.service.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export declare function MurLock(releaseTime: number,
|
|
1
|
+
export declare function MurLock(releaseTime: number, wait: number | ((retries: number) => number), ...keyParams: string[]): any;
|
|
2
|
+
export declare function MurLock(releaseTime: number, ...keyParams: string[]): any;
|
|
@@ -14,13 +14,23 @@ const common_1 = require("@nestjs/common");
|
|
|
14
14
|
const exceptions_1 = require("../exceptions");
|
|
15
15
|
const murlock_service_1 = require("../murlock.service");
|
|
16
16
|
function getParameterNames(func) {
|
|
17
|
-
const STRIP_COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/
|
|
17
|
+
const STRIP_COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm;
|
|
18
18
|
const ARGUMENT_NAMES = /([^\s,]+)/g;
|
|
19
19
|
const fnStr = func.toString().replace(STRIP_COMMENTS, '');
|
|
20
|
-
const result = fnStr
|
|
20
|
+
const result = fnStr
|
|
21
|
+
.slice(fnStr.indexOf('(') + 1, fnStr.indexOf(')'))
|
|
22
|
+
.match(ARGUMENT_NAMES);
|
|
21
23
|
return result || [];
|
|
22
24
|
}
|
|
23
|
-
function MurLock(releaseTime, ...keyParams) {
|
|
25
|
+
function MurLock(releaseTime, waitOrKeyParam, ...keyParams) {
|
|
26
|
+
let wait;
|
|
27
|
+
if (typeof waitOrKeyParam === 'number' ||
|
|
28
|
+
typeof waitOrKeyParam === 'function') {
|
|
29
|
+
wait = waitOrKeyParam;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
keyParams = [waitOrKeyParam, ...keyParams];
|
|
33
|
+
}
|
|
24
34
|
const injectMurlockService = (0, common_1.Inject)(murlock_service_1.MurLockService);
|
|
25
35
|
return (target, propertyKey, descriptor) => {
|
|
26
36
|
injectMurlockService(target, 'murlockServiceDecorator');
|
|
@@ -34,16 +44,29 @@ function MurLock(releaseTime, ...keyParams) {
|
|
|
34
44
|
}
|
|
35
45
|
lockKeyElements.push(...keyParams.map((keyParam) => {
|
|
36
46
|
const [source, path] = keyParam.split('.');
|
|
37
|
-
const parameterIndex = isNumber(source)
|
|
47
|
+
const parameterIndex = isNumber(source)
|
|
48
|
+
? Number(source)
|
|
49
|
+
: methodParameterNames.indexOf(source);
|
|
38
50
|
if (parameterIndex >= 0) {
|
|
39
|
-
const parameterValue = findParameterValue({
|
|
40
|
-
|
|
51
|
+
const parameterValue = findParameterValue({
|
|
52
|
+
args,
|
|
53
|
+
source,
|
|
54
|
+
parameterIndex,
|
|
55
|
+
path,
|
|
56
|
+
});
|
|
57
|
+
if (typeof parameterValue === 'undefined' ||
|
|
58
|
+
parameterValue === null) {
|
|
41
59
|
throw new exceptions_1.MurLockException(`Parameter ${source} is undefined or null.`);
|
|
42
60
|
}
|
|
43
|
-
if (path &&
|
|
61
|
+
if (path &&
|
|
62
|
+
typeof parameterValue === 'object' &&
|
|
63
|
+
parameterValue !== null &&
|
|
64
|
+
path in parameterValue) {
|
|
44
65
|
return parameterValue[path];
|
|
45
66
|
}
|
|
46
|
-
return parameterValue instanceof Object
|
|
67
|
+
return parameterValue instanceof Object
|
|
68
|
+
? parameterValue.toString()
|
|
69
|
+
: parameterValue;
|
|
47
70
|
}
|
|
48
71
|
if (lockKeyPrefix == 'custom') {
|
|
49
72
|
return source;
|
|
@@ -59,7 +82,7 @@ function MurLock(releaseTime, ...keyParams) {
|
|
|
59
82
|
if (!murLockService) {
|
|
60
83
|
throw new exceptions_1.MurLockException('MurLockService is not available.');
|
|
61
84
|
}
|
|
62
|
-
return murLockService.runWithLock(lockKey, releaseTime, () => __awaiter(this, void 0, void 0, function* () {
|
|
85
|
+
return murLockService.runWithLock(lockKey, releaseTime, wait, () => __awaiter(this, void 0, void 0, function* () {
|
|
63
86
|
return originalMethod.apply(this, args);
|
|
64
87
|
}));
|
|
65
88
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"murlock.decorator.js","sourceRoot":"","sources":["../../lib/decorators/murlock.decorator.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAwC;AACxC,8CAAiD;AACjD,wDAAoD;AAOpD,SAAS,iBAAiB,CAAC,IAAc;IACvC,MAAM,cAAc,GAAG,kCAAkC,CAAC;IAC1D,MAAM,cAAc,GAAG,YAAY,CAAC;IAEpC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,KAAK,
|
|
1
|
+
{"version":3,"file":"murlock.decorator.js","sourceRoot":"","sources":["../../lib/decorators/murlock.decorator.ts"],"names":[],"mappings":"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"}
|
package/dist/murlock.module.js
CHANGED
|
@@ -9,8 +9,8 @@ var MurLockModule_1;
|
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.MurLockModule = void 0;
|
|
11
11
|
const common_1 = require("@nestjs/common");
|
|
12
|
-
const murlock_service_1 = require("./murlock.service");
|
|
13
12
|
const als_module_1 = require("./als/als.module");
|
|
13
|
+
const murlock_service_1 = require("./murlock.service");
|
|
14
14
|
let MurLockModule = MurLockModule_1 = class MurLockModule {
|
|
15
15
|
static forRoot(options) {
|
|
16
16
|
return {
|
|
@@ -29,14 +29,8 @@ let MurLockModule = MurLockModule_1 = class MurLockModule {
|
|
|
29
29
|
static forRootAsync(options) {
|
|
30
30
|
return {
|
|
31
31
|
module: MurLockModule_1,
|
|
32
|
-
imports: [
|
|
33
|
-
|
|
34
|
-
...options.imports
|
|
35
|
-
] || [als_module_1.AsyncStorageManagerModule.forRoot()],
|
|
36
|
-
providers: [
|
|
37
|
-
this.createAsyncOptionsProvider(options),
|
|
38
|
-
murlock_service_1.MurLockService,
|
|
39
|
-
],
|
|
32
|
+
imports: [als_module_1.AsyncStorageManagerModule.forRoot(), ...options.imports],
|
|
33
|
+
providers: [this.createAsyncOptionsProvider(options), murlock_service_1.MurLockService],
|
|
40
34
|
exports: [murlock_service_1.MurLockService],
|
|
41
35
|
};
|
|
42
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"murlock.module.js","sourceRoot":"","sources":["../lib/murlock.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAyE;AACzE,
|
|
1
|
+
{"version":3,"file":"murlock.module.js","sourceRoot":"","sources":["../lib/murlock.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAyE;AACzE,iDAA6D;AAE7D,uDAAmD;AAI5C,IAAM,aAAa,qBAAnB,MAAM,aAAa;IACxB,MAAM,CAAC,OAAO,CAAC,OAA6B;QAC1C,OAAO;YACL,MAAM,EAAE,eAAa;YACrB,OAAO,EAAE,CAAC,sCAAyB,CAAC,OAAO,EAAE,CAAC;YAC9C,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,iBAAiB;oBAC1B,QAAQ,EAAE,OAAO;iBAClB;gBACD,gCAAc;aACf;YACD,OAAO,EAAE,CAAC,gCAAc,CAAC;SAC1B,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,OAAkC;QACpD,OAAO;YACL,MAAM,EAAE,eAAa;YACrB,OAAO,EAAE,CAAC,sCAAyB,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;YAClE,SAAS,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,EAAE,gCAAc,CAAC;YACrE,OAAO,EAAE,CAAC,gCAAc,CAAC;SAC1B,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,0BAA0B,CACvC,OAAkC;QAElC,OAAO;YACL,OAAO,EAAE,iBAAiB;YAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;SAC7B,CAAC;IACJ,CAAC;CACF,CAAA;AAlCY,sCAAa;wBAAb,aAAa;IAFzB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,aAAa,CAkCzB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { OnApplicationShutdown, OnModuleInit } from '@nestjs/common';
|
|
2
|
-
import { MurLockModuleOptions } from './interfaces';
|
|
3
2
|
import { AsyncStorageService } from './als/als.service';
|
|
3
|
+
import { MurLockModuleOptions } from './interfaces';
|
|
4
4
|
export declare class MurLockService implements OnModuleInit, OnApplicationShutdown {
|
|
5
5
|
readonly options: MurLockModuleOptions;
|
|
6
6
|
private readonly asyncStorageService;
|
|
@@ -17,5 +17,6 @@ export declare class MurLockService implements OnModuleInit, OnApplicationShutdo
|
|
|
17
17
|
private unlock;
|
|
18
18
|
private acquireLock;
|
|
19
19
|
private releaseLock;
|
|
20
|
-
runWithLock<R>(lockKey: string, releaseTime: number, fn: () => Promise<R>):
|
|
20
|
+
runWithLock<R>(lockKey: string, releaseTime: number, fn: () => Promise<R>): any;
|
|
21
|
+
runWithLock<R>(lockKey: string, releaseTime: number, wait: number | ((retries: number) => number), fn: () => Promise<R>): any;
|
|
21
22
|
}
|
package/dist/murlock.service.js
CHANGED
|
@@ -24,11 +24,11 @@ var MurLockService_1;
|
|
|
24
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
25
|
exports.MurLockService = void 0;
|
|
26
26
|
const common_1 = require("@nestjs/common");
|
|
27
|
-
const redis_1 = require("redis");
|
|
28
27
|
const fs_1 = require("fs");
|
|
29
28
|
const path_1 = require("path");
|
|
30
|
-
const
|
|
29
|
+
const redis_1 = require("redis");
|
|
31
30
|
const als_service_1 = require("./als/als.service");
|
|
31
|
+
const exceptions_1 = require("./exceptions");
|
|
32
32
|
const utils_1 = require("./utils");
|
|
33
33
|
let MurLockService = MurLockService_1 = class MurLockService {
|
|
34
34
|
constructor(options, asyncStorageService) {
|
|
@@ -60,12 +60,17 @@ let MurLockService = MurLockService_1 = class MurLockService {
|
|
|
60
60
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
61
61
|
}
|
|
62
62
|
log(level, message, context) {
|
|
63
|
-
const levels = [
|
|
63
|
+
const levels = [
|
|
64
|
+
'debug',
|
|
65
|
+
'log',
|
|
66
|
+
'warn',
|
|
67
|
+
'error',
|
|
68
|
+
];
|
|
64
69
|
if (levels.indexOf(level) >= levels.indexOf(this.options.logLevel)) {
|
|
65
70
|
this.logger[level](message, context);
|
|
66
71
|
}
|
|
67
72
|
}
|
|
68
|
-
lock(lockKey, releaseTime, clientId) {
|
|
73
|
+
lock(lockKey, releaseTime, clientId, wait) {
|
|
69
74
|
return __awaiter(this, void 0, void 0, function* () {
|
|
70
75
|
this.log('debug', `MurLock Client ID is ${clientId}`);
|
|
71
76
|
const attemptLock = (attemptsRemaining) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -86,8 +91,14 @@ let MurLockService = MurLockService_1 = class MurLockService {
|
|
|
86
91
|
return true;
|
|
87
92
|
}
|
|
88
93
|
else {
|
|
89
|
-
|
|
90
|
-
|
|
94
|
+
const delay = wait
|
|
95
|
+
? typeof wait === 'function'
|
|
96
|
+
? wait(this.options.maxAttempts - attemptsRemaining + 1)
|
|
97
|
+
: wait
|
|
98
|
+
: this.options.wait *
|
|
99
|
+
(this.options.maxAttempts - attemptsRemaining + 1);
|
|
100
|
+
this.log('warn', `Failed to obtain lock for key ${lockKey}, retrying in ${delay} ms...`);
|
|
101
|
+
yield this.sleep(delay);
|
|
91
102
|
return attemptLock(attemptsRemaining - 1);
|
|
92
103
|
}
|
|
93
104
|
}
|
|
@@ -117,11 +128,11 @@ let MurLockService = MurLockService_1 = class MurLockService {
|
|
|
117
128
|
}
|
|
118
129
|
});
|
|
119
130
|
}
|
|
120
|
-
acquireLock(lockKey, clientId, releaseTime) {
|
|
131
|
+
acquireLock(lockKey, clientId, releaseTime, wait) {
|
|
121
132
|
return __awaiter(this, void 0, void 0, function* () {
|
|
122
133
|
let isLockSuccessful = false;
|
|
123
134
|
try {
|
|
124
|
-
isLockSuccessful = yield this.lock(lockKey, releaseTime, clientId);
|
|
135
|
+
isLockSuccessful = yield this.lock(lockKey, releaseTime, clientId, wait);
|
|
125
136
|
}
|
|
126
137
|
catch (error) {
|
|
127
138
|
throw new exceptions_1.MurLockException(`Failed to acquire lock for key ${lockKey}: ${error.message}`);
|
|
@@ -141,14 +152,23 @@ let MurLockService = MurLockService_1 = class MurLockService {
|
|
|
141
152
|
}
|
|
142
153
|
});
|
|
143
154
|
}
|
|
144
|
-
runWithLock(lockKey, releaseTime, fn) {
|
|
155
|
+
runWithLock(lockKey, releaseTime, waitOrFn, fn) {
|
|
145
156
|
return __awaiter(this, void 0, void 0, function* () {
|
|
157
|
+
let wait;
|
|
158
|
+
let operation;
|
|
159
|
+
if (fn === undefined) {
|
|
160
|
+
operation = waitOrFn;
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
wait = waitOrFn;
|
|
164
|
+
operation = fn;
|
|
165
|
+
}
|
|
146
166
|
this.asyncStorageService.registerContext();
|
|
147
167
|
this.asyncStorageService.setClientID('clientId', (0, utils_1.generateUuid)());
|
|
148
168
|
const clientId = this.asyncStorageService.get('clientId');
|
|
149
|
-
yield this.acquireLock(lockKey, clientId, releaseTime);
|
|
169
|
+
yield this.acquireLock(lockKey, clientId, releaseTime, wait);
|
|
150
170
|
try {
|
|
151
|
-
return yield
|
|
171
|
+
return yield operation();
|
|
152
172
|
}
|
|
153
173
|
finally {
|
|
154
174
|
yield this.releaseLock(lockKey, clientId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"murlock.service.js","sourceRoot":"","sources":["../lib/murlock.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"murlock.service.js","sourceRoot":"","sources":["../lib/murlock.service.ts"],"names":[],"mappings":"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"}
|