murlock 4.3.0 → 4.3.2

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/README.md CHANGED
@@ -69,7 +69,15 @@ import { MurLock } from 'murlock';
69
69
  @Injectable()
70
70
  export class AppService {
71
71
  @MurLock(5000, 'userId')
72
- async someFunction({ userId, firstName, lastName }: { userId: string, firstName: string, lastName: string} ): Promise<void> {
72
+ async someFunction({
73
+ userId,
74
+ firstName,
75
+ lastName,
76
+ }: {
77
+ userId: string;
78
+ firstName: string;
79
+ lastName: string;
80
+ }): Promise<void> {
73
81
  // Some critical section that only one request should be able to execute at a time
74
82
  }
75
83
  }
@@ -83,7 +91,10 @@ import { MurLock } from 'murlock';
83
91
  @Injectable()
84
92
  export class AppService {
85
93
  @MurLock(5000, '0.userId', '1.transactionId')
86
- async someFunction({ userId, firstName, lastName }: UserDTO, { balance, transactionId }: TransactionDTO ): Promise<void> {
94
+ async someFunction(
95
+ { userId, firstName, lastName }: UserDTO,
96
+ { balance, transactionId }: TransactionDTO
97
+ ): Promise<void> {
87
98
  // Some critical section that only one request should be able to execute at a time
88
99
  }
89
100
  }
@@ -130,7 +141,7 @@ You can override the global wait parameter per decorator, allowing fine-grained
130
141
 
131
142
  ```typescript
132
143
  @MurLock(
133
- 5000,
144
+ 5000,
134
145
  (retries) => (Math.floor(Math.random() * 50) + 50) * retries,
135
146
  'user.id',
136
147
  )
@@ -151,6 +162,66 @@ async anotherFunction(user: User): Promise<void> {
151
162
  - If no wait is provided in decorator, MurLock will fallback to global wait from forRoot().
152
163
  - Allows dynamic retry logic per critical section.
153
164
 
165
+ ## Decorator Composition
166
+
167
+ When using `@MurLock` with other decorators (such as `@Transactional` from typeorm-transactional), you may encounter issues with parameter name extraction if the other decorator wraps the method before `@MurLock` is applied.
168
+
169
+ ### Problem
170
+
171
+ TypeScript decorators execute in bottom-up order. If another decorator wraps the method before `@MurLock`, the parameter names cannot be extracted from the wrapped function:
172
+
173
+ ```typescript
174
+ // This may fail if @Transactional wraps the method before @MurLock executes
175
+ @MurLock(5000, 'userData.id')
176
+ @Transactional()
177
+ async process(userData: { id: string }, options: string[] = []): Promise<any> {
178
+ // Error: Parameter userData not found in method arguments
179
+ }
180
+ ```
181
+
182
+ ### Solution: Using SetParamNames
183
+
184
+ Use the `SetParamNames` decorator to explicitly specify parameter names. **Important**: `SetParamNames` must be placed **below** `@MurLock` in the code (it will execute before `@MurLock` due to TypeScript's bottom-up decorator execution order):
185
+
186
+ ```typescript
187
+ import { MurLock, SetParamNames } from 'murlock';
188
+
189
+ class MyService {
190
+ @MurLock(5000, 'userData.id')
191
+ @SetParamNames('userData', 'options') // Must be below @MurLock
192
+ @Transactional()
193
+ async process(userData: { id: string }, options: string[] = []): Promise<any> {
194
+ // This will work correctly
195
+ }
196
+ }
197
+ ```
198
+
199
+ **Decorator Execution Order** (bottom-up):
200
+
201
+ 1. `@Transactional()` executes first and wraps the method
202
+ 2. `@SetParamNames` executes second and stores parameter names in metadata
203
+ 3. `@MurLock` executes last and reads parameter names from metadata
204
+
205
+ If you place `@SetParamNames` above `@MurLock`, it will execute after `@MurLock`, and the metadata won't be available when `@MurLock` needs it.
206
+
207
+ ### Alternative: Using Parameter Indices
208
+
209
+ As a workaround, you can use parameter indices instead of names:
210
+
211
+ ```typescript
212
+ @MurLock(5000, '0.id') // Uses index 0 for userData
213
+ @Transactional()
214
+ async process(userData: { id: string }, options: string[] = []): Promise<any> {
215
+ // This works, but name-based keys are more readable
216
+ }
217
+ ```
218
+
219
+ ### How It Works
220
+
221
+ - `SetParamNames` stores parameter names in metadata before the method is wrapped
222
+ - `@MurLock` reads the parameter names from metadata when the function is already wrapped
223
+ - This allows decorator composition to work correctly regardless of execution order
224
+
154
225
  ## Blocking Mode
155
226
 
156
227
  MurLock supports a blocking mode where it will continuously retry to acquire the lock until successful. This is useful for critical operations that must eventually succeed.
@@ -189,7 +260,7 @@ MurLock includes robust Redis connection handling:
189
260
  @Module({
190
261
  imports: [
191
262
  MurLockModule.forRoot({
192
- redisOptions: {
263
+ redisOptions: {
193
264
  url: 'redis://localhost:6379',
194
265
  socket: {
195
266
  keepAlive: false,
@@ -222,7 +293,7 @@ import { MurLockModule } from 'murlock';
222
293
  wait: configService.get('MURLOCK_WAIT'),
223
294
  maxAttempts: configService.get('MURLOCK_MAX_ATTEMPTS'),
224
295
  logLevel: configService.get('LOG_LEVEL'),
225
- lockKeyPrefix: 'custom'
296
+ lockKeyPrefix: 'custom',
226
297
  }),
227
298
  inject: [ConfigService],
228
299
  }),
@@ -277,7 +348,7 @@ import { MurLockService } from 'murlock';
277
348
  @Injectable()
278
349
  export class YourService {
279
350
  constructor(private murLockService: MurLockService) {}
280
-
351
+
281
352
  // Your methods where you want to use the lock
282
353
  }
283
354
  ```
@@ -1,3 +1,5 @@
1
1
  import 'reflect-metadata';
2
+ export declare const PARAM_NAMES_KEY: unique symbol;
3
+ export declare function SetParamNames(...paramNames: string[]): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
2
4
  export declare function MurLock(releaseTime: number, wait: number | ((retries: number) => number), ...keyParams: string[]): any;
3
5
  export declare function MurLock(releaseTime: number, ...keyParams: string[]): any;
@@ -9,19 +9,76 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.MurLock = void 0;
13
- require("reflect-metadata");
12
+ exports.MurLock = exports.SetParamNames = exports.PARAM_NAMES_KEY = void 0;
14
13
  const common_1 = require("@nestjs/common");
14
+ require("reflect-metadata");
15
15
  const exceptions_1 = require("../exceptions");
16
16
  const murlock_service_1 = require("../murlock.service");
17
+ exports.PARAM_NAMES_KEY = Symbol('murlock:param-names');
18
+ function SetParamNames(...paramNames) {
19
+ return function (target, propertyKey, descriptor) {
20
+ Reflect.defineMetadata(exports.PARAM_NAMES_KEY, paramNames, target, propertyKey);
21
+ return descriptor;
22
+ };
23
+ }
24
+ exports.SetParamNames = SetParamNames;
17
25
  function getParameterNames(func) {
18
26
  const STRIP_COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm;
19
- const ARGUMENT_NAMES = /([^\s,]+)/g;
20
27
  const fnStr = func.toString().replace(STRIP_COMMENTS, '');
21
- const result = fnStr
22
- .slice(fnStr.indexOf('(') + 1, fnStr.indexOf(')'))
23
- .match(ARGUMENT_NAMES);
24
- return result || [];
28
+ const paramsStr = fnStr.slice(fnStr.indexOf('(') + 1, fnStr.indexOf(')'));
29
+ if (!paramsStr.trim()) {
30
+ return [];
31
+ }
32
+ const params = [];
33
+ let current = '';
34
+ let depth = 0;
35
+ let inString = false;
36
+ let stringChar = '';
37
+ for (let i = 0; i < paramsStr.length; i++) {
38
+ const char = paramsStr[i];
39
+ if (!inString && (char === '"' || char === "'" || char === '`')) {
40
+ inString = true;
41
+ stringChar = char;
42
+ }
43
+ else if (inString && char === stringChar && paramsStr[i - 1] !== '\\') {
44
+ inString = false;
45
+ }
46
+ else if (!inString) {
47
+ if (char === '(' || char === '[' || char === '{') {
48
+ depth++;
49
+ }
50
+ else if (char === ')' || char === ']' || char === '}') {
51
+ depth--;
52
+ }
53
+ else if (char === ',' && depth === 0) {
54
+ const paramName = current.split('=')[0].trim().split(':')[0].trim();
55
+ if (paramName) {
56
+ params.push(paramName);
57
+ }
58
+ current = '';
59
+ continue;
60
+ }
61
+ }
62
+ current += char;
63
+ }
64
+ if (current.trim()) {
65
+ const paramName = current.split('=')[0].trim().split(':')[0].trim();
66
+ if (paramName) {
67
+ params.push(paramName);
68
+ }
69
+ }
70
+ return params;
71
+ }
72
+ function getParameterNamesWithFallback(func, target, propertyKey) {
73
+ const paramNames = getParameterNames(func);
74
+ if (paramNames.length > 0 && !paramNames.includes('...args')) {
75
+ return paramNames;
76
+ }
77
+ const metadataParamNames = Reflect.getMetadata(exports.PARAM_NAMES_KEY, target, propertyKey);
78
+ if (metadataParamNames && metadataParamNames.length > 0) {
79
+ return metadataParamNames;
80
+ }
81
+ return paramNames;
25
82
  }
26
83
  function MurLock(releaseTime, waitOrKeyParam, ...keyParams) {
27
84
  let wait;
@@ -39,7 +96,14 @@ function MurLock(releaseTime, waitOrKeyParam, ...keyParams) {
39
96
  return (target, propertyKey, descriptor) => {
40
97
  injectMurlockService(target, 'murlockServiceDecorator');
41
98
  const originalMethod = descriptor.value;
42
- const methodParameterNames = getParameterNames(originalMethod);
99
+ const methodParameterNames = getParameterNamesWithFallback(originalMethod, target, propertyKey);
100
+ if (methodParameterNames.length > 0 &&
101
+ !methodParameterNames.includes('...args')) {
102
+ const existingMetadata = Reflect.getMetadata(exports.PARAM_NAMES_KEY, target, propertyKey);
103
+ if (!existingMetadata) {
104
+ Reflect.defineMetadata(exports.PARAM_NAMES_KEY, methodParameterNames, target, propertyKey);
105
+ }
106
+ }
43
107
  function constructLockKey(args, lockKeyPrefix = 'default') {
44
108
  let lockKeyElements = [];
45
109
  if (lockKeyPrefix != 'custom') {
@@ -1 +1 @@
1
- {"version":3,"file":"murlock.decorator.js","sourceRoot":"","sources":["../../lib/decorators/murlock.decorator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"murlock.decorator.js","sourceRoot":"","sources":["../../lib/decorators/murlock.decorator.ts"],"names":[],"mappings":"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"}
@@ -45,14 +45,11 @@ let MurLockService = MurLockService_1 = class MurLockService {
45
45
  catch (error) {
46
46
  throw new exceptions_1.MurLockException(`Failed to load Lua scripts: ${error.message}`);
47
47
  }
48
- this.redisClient = (0, redis_1.createClient)(Object.assign(Object.assign({}, this.options.redisOptions), { socket: {
49
- keepAlive: false,
50
- reconnectStrategy: (retries) => {
48
+ this.redisClient = (0, redis_1.createClient)(Object.assign(Object.assign({}, this.options.redisOptions), { socket: Object.assign(Object.assign({}, this.options.redisOptions.socket), { keepAlive: false, reconnectStrategy: (retries) => {
51
49
  const delay = Math.min(retries * 500, 5000);
52
50
  this.log('warn', `MurLock Redis reconnect attempt ${retries}, waiting ${delay} ms...`);
53
51
  return delay;
54
- },
55
- } }));
52
+ } }) }));
56
53
  this.registerRedisErrorHandlers();
57
54
  try {
58
55
  yield this.redisClient.connect();
@@ -1 +1 @@
1
- {"version":3,"file":"murlock.service.js","sourceRoot":"","sources":["../lib/murlock.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"murlock.service.js","sourceRoot":"","sources":["../lib/murlock.service.ts"],"names":[],"mappings":"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"}