@rnw-community/nestjs-enterprise 1.9.0 → 1.10.1

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.
Files changed (163) hide show
  1. package/dist/cjs/decorator/histogram-metric/histogram-metric.decorator.d.ts +2 -2
  2. package/dist/cjs/decorator/histogram-metric/histogram-metric.decorator.d.ts.map +1 -1
  3. package/dist/cjs/decorator/histogram-metric/histogram-metric.decorator.js +1 -3
  4. package/dist/cjs/decorator/histogram-metric/histogram-metric.decorator.js.map +1 -1
  5. package/dist/cjs/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.d.ts +8 -0
  6. package/dist/cjs/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.d.ts.map +1 -0
  7. package/dist/cjs/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.js +22 -0
  8. package/dist/cjs/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.js.map +1 -0
  9. package/dist/cjs/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.d.ts +8 -0
  10. package/dist/cjs/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.d.ts.map +1 -0
  11. package/dist/cjs/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.js +22 -0
  12. package/dist/cjs/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.js.map +1 -0
  13. package/dist/cjs/decorator/lock/interface/lock-handle.interface.d.ts +4 -0
  14. package/dist/cjs/decorator/lock/interface/lock-handle.interface.d.ts.map +1 -0
  15. package/dist/cjs/{type/method-decorator.type.js → decorator/lock/interface/lock-handle.interface.js} +1 -1
  16. package/dist/cjs/decorator/lock/interface/lock-handle.interface.js.map +1 -0
  17. package/dist/cjs/decorator/lock/interface/lock-service.interface.d.ts +6 -0
  18. package/dist/cjs/decorator/lock/interface/lock-service.interface.d.ts.map +1 -0
  19. package/dist/cjs/decorator/lock/interface/lock-service.interface.js +3 -0
  20. package/dist/cjs/decorator/lock/interface/lock-service.interface.js.map +1 -0
  21. package/dist/cjs/decorator/lock/lock-observable/lock-observable.decorator.d.ts +6 -2
  22. package/dist/cjs/decorator/lock/lock-observable/lock-observable.decorator.d.ts.map +1 -1
  23. package/dist/cjs/decorator/lock/lock-observable/lock-observable.decorator.js +10 -24
  24. package/dist/cjs/decorator/lock/lock-observable/lock-observable.decorator.js.map +1 -1
  25. package/dist/cjs/decorator/lock/lock-promise/lock-promise.decorator.d.ts +6 -2
  26. package/dist/cjs/decorator/lock/lock-promise/lock-promise.decorator.d.ts.map +1 -1
  27. package/dist/cjs/decorator/lock/lock-promise/lock-promise.decorator.js +9 -42
  28. package/dist/cjs/decorator/lock/lock-promise/lock-promise.decorator.js.map +1 -1
  29. package/dist/cjs/decorator/lock/service/lockable.service.d.ts +3 -0
  30. package/dist/cjs/decorator/lock/service/lockable.service.d.ts.map +1 -1
  31. package/dist/cjs/decorator/lock/service/lockable.service.js +3 -1
  32. package/dist/cjs/decorator/lock/service/lockable.service.js.map +1 -1
  33. package/dist/cjs/decorator/lock/util/execute-lock-observable.util.d.ts +4 -0
  34. package/dist/cjs/decorator/lock/util/execute-lock-observable.util.d.ts.map +1 -0
  35. package/dist/cjs/decorator/lock/util/execute-lock-observable.util.js +34 -0
  36. package/dist/cjs/decorator/lock/util/execute-lock-observable.util.js.map +1 -0
  37. package/dist/cjs/decorator/lock/util/execute-lock-promise.util.d.ts +4 -0
  38. package/dist/cjs/decorator/lock/util/execute-lock-promise.util.d.ts.map +1 -0
  39. package/dist/cjs/decorator/lock/util/execute-lock-promise.util.js +38 -0
  40. package/dist/cjs/decorator/lock/util/execute-lock-promise.util.js.map +1 -0
  41. package/dist/cjs/decorator/lock/util/get-lock-service.util.d.ts +3 -0
  42. package/dist/cjs/decorator/lock/util/get-lock-service.util.d.ts.map +1 -0
  43. package/dist/cjs/decorator/lock/util/get-lock-service.util.js +13 -0
  44. package/dist/cjs/decorator/lock/util/get-lock-service.util.js.map +1 -0
  45. package/dist/cjs/decorator/lock/util/get-method-name.util.d.ts +2 -0
  46. package/dist/cjs/decorator/lock/util/get-method-name.util.d.ts.map +1 -0
  47. package/dist/cjs/decorator/lock/util/get-method-name.util.js +6 -0
  48. package/dist/cjs/decorator/lock/util/get-method-name.util.js.map +1 -0
  49. package/dist/cjs/decorator/lock/util/get-redlock-service.util.d.ts +4 -0
  50. package/dist/cjs/decorator/lock/util/get-redlock-service.util.d.ts.map +1 -0
  51. package/dist/cjs/decorator/lock/util/get-redlock-service.util.js +18 -0
  52. package/dist/cjs/decorator/lock/util/get-redlock-service.util.js.map +1 -0
  53. package/dist/cjs/decorator/lock/util/inject-lock-service.util.d.ts +4 -0
  54. package/dist/cjs/decorator/lock/util/inject-lock-service.util.d.ts.map +1 -0
  55. package/dist/cjs/decorator/lock/util/inject-lock-service.util.js +9 -0
  56. package/dist/cjs/decorator/lock/util/inject-lock-service.util.js.map +1 -0
  57. package/dist/cjs/decorator/lock/util/run-pre-lock.util.d.ts.map +1 -1
  58. package/dist/cjs/decorator/lock/util/run-pre-lock.util.js +5 -1
  59. package/dist/cjs/decorator/lock/util/run-pre-lock.util.js.map +1 -1
  60. package/dist/cjs/decorator/lock/util/validate-redlock.util.d.ts +1 -0
  61. package/dist/cjs/decorator/lock/util/validate-redlock.util.d.ts.map +1 -1
  62. package/dist/cjs/decorator/lock/util/validate-redlock.util.js +1 -0
  63. package/dist/cjs/decorator/lock/util/validate-redlock.util.js.map +1 -1
  64. package/dist/cjs/decorator/log/log.decorator.d.ts +2 -2
  65. package/dist/cjs/decorator/log/log.decorator.d.ts.map +1 -1
  66. package/dist/cjs/decorator/log/log.decorator.js +4 -9
  67. package/dist/cjs/decorator/log/log.decorator.js.map +1 -1
  68. package/dist/cjs/decorator/log/type/error-log-function.type.d.ts +1 -1
  69. package/dist/cjs/decorator/log/type/error-log-function.type.d.ts.map +1 -1
  70. package/dist/cjs/decorator/log/type/post-log-function.type.d.ts +1 -1
  71. package/dist/cjs/decorator/log/type/post-log-function.type.d.ts.map +1 -1
  72. package/dist/cjs/index.d.ts +5 -0
  73. package/dist/cjs/index.d.ts.map +1 -1
  74. package/dist/cjs/index.js +5 -1
  75. package/dist/cjs/index.js.map +1 -1
  76. package/dist/cjs/type/pre-decorator-function.type.d.ts +1 -1
  77. package/dist/cjs/type/pre-decorator-function.type.d.ts.map +1 -1
  78. package/dist/esm/decorator/histogram-metric/histogram-metric.decorator.d.ts +2 -2
  79. package/dist/esm/decorator/histogram-metric/histogram-metric.decorator.d.ts.map +1 -1
  80. package/dist/esm/decorator/histogram-metric/histogram-metric.decorator.js +1 -3
  81. package/dist/esm/decorator/histogram-metric/histogram-metric.decorator.js.map +1 -1
  82. package/dist/esm/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.d.ts +8 -0
  83. package/dist/esm/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.d.ts.map +1 -0
  84. package/dist/esm/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.js +18 -0
  85. package/dist/esm/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.js.map +1 -0
  86. package/dist/esm/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.d.ts +8 -0
  87. package/dist/esm/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.d.ts.map +1 -0
  88. package/dist/esm/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.js +18 -0
  89. package/dist/esm/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.js.map +1 -0
  90. package/dist/esm/decorator/lock/interface/lock-handle.interface.d.ts +4 -0
  91. package/dist/esm/decorator/lock/interface/lock-handle.interface.d.ts.map +1 -0
  92. package/dist/esm/decorator/lock/interface/lock-handle.interface.js +2 -0
  93. package/dist/esm/decorator/lock/interface/lock-handle.interface.js.map +1 -0
  94. package/dist/esm/decorator/lock/interface/lock-service.interface.d.ts +6 -0
  95. package/dist/esm/decorator/lock/interface/lock-service.interface.d.ts.map +1 -0
  96. package/dist/esm/decorator/lock/interface/lock-service.interface.js +2 -0
  97. package/dist/esm/decorator/lock/interface/lock-service.interface.js.map +1 -0
  98. package/dist/esm/decorator/lock/lock-observable/lock-observable.decorator.d.ts +6 -2
  99. package/dist/esm/decorator/lock/lock-observable/lock-observable.decorator.d.ts.map +1 -1
  100. package/dist/esm/decorator/lock/lock-observable/lock-observable.decorator.js +10 -24
  101. package/dist/esm/decorator/lock/lock-observable/lock-observable.decorator.js.map +1 -1
  102. package/dist/esm/decorator/lock/lock-promise/lock-promise.decorator.d.ts +6 -2
  103. package/dist/esm/decorator/lock/lock-promise/lock-promise.decorator.d.ts.map +1 -1
  104. package/dist/esm/decorator/lock/lock-promise/lock-promise.decorator.js +9 -42
  105. package/dist/esm/decorator/lock/lock-promise/lock-promise.decorator.js.map +1 -1
  106. package/dist/esm/decorator/lock/service/lockable.service.d.ts +3 -0
  107. package/dist/esm/decorator/lock/service/lockable.service.d.ts.map +1 -1
  108. package/dist/esm/decorator/lock/service/lockable.service.js +3 -1
  109. package/dist/esm/decorator/lock/service/lockable.service.js.map +1 -1
  110. package/dist/esm/decorator/lock/util/execute-lock-observable.util.d.ts +4 -0
  111. package/dist/esm/decorator/lock/util/execute-lock-observable.util.d.ts.map +1 -0
  112. package/dist/esm/decorator/lock/util/execute-lock-observable.util.js +30 -0
  113. package/dist/esm/decorator/lock/util/execute-lock-observable.util.js.map +1 -0
  114. package/dist/esm/decorator/lock/util/execute-lock-promise.util.d.ts +4 -0
  115. package/dist/esm/decorator/lock/util/execute-lock-promise.util.d.ts.map +1 -0
  116. package/dist/esm/decorator/lock/util/execute-lock-promise.util.js +34 -0
  117. package/dist/esm/decorator/lock/util/execute-lock-promise.util.js.map +1 -0
  118. package/dist/esm/decorator/lock/util/get-lock-service.util.d.ts +3 -0
  119. package/dist/esm/decorator/lock/util/get-lock-service.util.d.ts.map +1 -0
  120. package/dist/esm/decorator/lock/util/get-lock-service.util.js +9 -0
  121. package/dist/esm/decorator/lock/util/get-lock-service.util.js.map +1 -0
  122. package/dist/esm/decorator/lock/util/get-method-name.util.d.ts +2 -0
  123. package/dist/esm/decorator/lock/util/get-method-name.util.d.ts.map +1 -0
  124. package/dist/esm/decorator/lock/util/get-method-name.util.js +2 -0
  125. package/dist/esm/decorator/lock/util/get-method-name.util.js.map +1 -0
  126. package/dist/esm/decorator/lock/util/get-redlock-service.util.d.ts +4 -0
  127. package/dist/esm/decorator/lock/util/get-redlock-service.util.d.ts.map +1 -0
  128. package/dist/esm/decorator/lock/util/get-redlock-service.util.js +14 -0
  129. package/dist/esm/decorator/lock/util/get-redlock-service.util.js.map +1 -0
  130. package/dist/esm/decorator/lock/util/inject-lock-service.util.d.ts +4 -0
  131. package/dist/esm/decorator/lock/util/inject-lock-service.util.d.ts.map +1 -0
  132. package/dist/esm/decorator/lock/util/inject-lock-service.util.js +5 -0
  133. package/dist/esm/decorator/lock/util/inject-lock-service.util.js.map +1 -0
  134. package/dist/esm/decorator/lock/util/run-pre-lock.util.d.ts.map +1 -1
  135. package/dist/esm/decorator/lock/util/run-pre-lock.util.js +5 -1
  136. package/dist/esm/decorator/lock/util/run-pre-lock.util.js.map +1 -1
  137. package/dist/esm/decorator/lock/util/validate-redlock.util.d.ts +1 -0
  138. package/dist/esm/decorator/lock/util/validate-redlock.util.d.ts.map +1 -1
  139. package/dist/esm/decorator/lock/util/validate-redlock.util.js +1 -0
  140. package/dist/esm/decorator/lock/util/validate-redlock.util.js.map +1 -1
  141. package/dist/esm/decorator/log/log.decorator.d.ts +2 -2
  142. package/dist/esm/decorator/log/log.decorator.d.ts.map +1 -1
  143. package/dist/esm/decorator/log/log.decorator.js +4 -9
  144. package/dist/esm/decorator/log/log.decorator.js.map +1 -1
  145. package/dist/esm/decorator/log/type/error-log-function.type.d.ts +1 -1
  146. package/dist/esm/decorator/log/type/error-log-function.type.d.ts.map +1 -1
  147. package/dist/esm/decorator/log/type/post-log-function.type.d.ts +1 -1
  148. package/dist/esm/decorator/log/type/post-log-function.type.d.ts.map +1 -1
  149. package/dist/esm/index.d.ts +5 -0
  150. package/dist/esm/index.d.ts.map +1 -1
  151. package/dist/esm/index.js +2 -0
  152. package/dist/esm/index.js.map +1 -1
  153. package/dist/esm/type/pre-decorator-function.type.d.ts +1 -1
  154. package/dist/esm/type/pre-decorator-function.type.d.ts.map +1 -1
  155. package/package.json +29 -8
  156. package/readme.md +20 -7
  157. package/dist/cjs/type/method-decorator.type.d.ts +0 -2
  158. package/dist/cjs/type/method-decorator.type.d.ts.map +0 -1
  159. package/dist/cjs/type/method-decorator.type.js.map +0 -1
  160. package/dist/esm/type/method-decorator.type.d.ts +0 -2
  161. package/dist/esm/type/method-decorator.type.d.ts.map +0 -1
  162. package/dist/esm/type/method-decorator.type.js +0 -2
  163. package/dist/esm/type/method-decorator.type.js.map +0 -1
@@ -1,4 +1,4 @@
1
1
  import { type HistogramConfiguration } from 'prom-client';
2
- import type { MethodDecoratorType } from '../../type/method-decorator.type';
3
- export declare const HistogramMetric: <M extends string, K extends (...args: any) => any, TResult extends ReturnType<K>, TArgs extends Parameters<K>>(metricName: string, configuration?: Omit<HistogramConfiguration<M>, "name">) => MethodDecoratorType<K>;
2
+ import { type AnyFn, type MethodDecoratorType } from '@rnw-community/shared';
3
+ export declare const HistogramMetric: <M extends string, K extends AnyFn, TResult extends ReturnType<K>, TArgs extends Parameters<K>>(metricName: string, configuration?: Omit<HistogramConfiguration<M>, "name">) => MethodDecoratorType<K>;
4
4
  //# sourceMappingURL=histogram-metric.decorator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"histogram-metric.decorator.d.ts","sourceRoot":"","sources":["../../../../src/decorator/histogram-metric/histogram-metric.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,sBAAsB,EAAY,MAAM,aAAa,CAAC;AAI/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,eAAO,MAAM,eAAe,GAEvB,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,EAAE,OAAO,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,UAAU,CAAC,CAAC,CAAC,EACtG,YAAY,MAAM,EAClB,gBAAgB,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KACxD,mBAAmB,CAAC,CAAC,CA6BvB,CAAC"}
1
+ {"version":3,"file":"histogram-metric.decorator.d.ts","sourceRoot":"","sources":["../../../../src/decorator/histogram-metric/histogram-metric.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,sBAAsB,EAAY,MAAM,aAAa,CAAC;AAE/E,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,mBAAmB,EAAa,MAAM,uBAAuB,CAAC;AAGxF,eAAO,MAAM,eAAe,GACvB,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,KAAK,EAAE,OAAO,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,UAAU,CAAC,CAAC,CAAC,EACtF,YAAY,MAAM,EAClB,gBAAgB,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KACxD,mBAAmB,CAAC,CAAC,CA6BvB,CAAC"}
@@ -3,9 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.HistogramMetric = void 0;
4
4
  const prom_client_1 = require("prom-client");
5
5
  const shared_1 = require("@rnw-community/shared");
6
- const HistogramMetric =
7
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
- (metricName, configuration) => (_target, _propertyKey, descriptor) => {
6
+ const HistogramMetric = (metricName, configuration) => (_target, _propertyKey, descriptor) => {
9
7
  let histogram = prom_client_1.register.getSingleMetric(metricName);
10
8
  if (!(0, shared_1.isDefined)(histogram)) {
11
9
  histogram = new prom_client_1.Histogram({
@@ -1 +1 @@
1
- {"version":3,"file":"histogram-metric.decorator.js","sourceRoot":"","sources":["../../../../src/decorator/histogram-metric/histogram-metric.decorator.ts"],"names":[],"mappings":";;;AAAA,6CAA+E;AAE/E,kDAAkD;AAI3C,MAAM,eAAe;AACxB,8DAA8D;AAC9D,CACQ,UAAkB,EAClB,aAAuD,EACjC,EAAE,CAC5B,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE;IAClC,IAAI,SAAS,GAAG,sBAAQ,CAAC,eAAe,CAAC,UAAU,CAA6B,CAAC;IAEjF,IAAI,CAAC,IAAA,kBAAS,EAAC,SAAS,CAAC,EAAE,CAAC;QACxB,SAAS,GAAG,IAAI,uBAAS,CAAC;YACtB,IAAI,EAAE,UAAU;YAChB,GAAG,aAAa;YAChB,IAAI,EAAE,UAAU;SACnB,CAAC,CAAC;IACP,CAAC;IAED,oEAAoE;IACpE,MAAM,cAAc,GAAG,UAAU,CAAC,KAAM,CAAC;IAEzC,sCAAsC;IACtC,UAAU,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW;QACvC,MAAM,YAAY,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC;QAE5C,IAAI,CAAC;YACD,oEAAoE;YACpE,+DAA+D;YAC/D,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;gBAAS,CAAC;YACP,YAAY,EAAE,CAAC;QACnB,CAAC;IACL,CAAM,CAAC;IAEP,OAAO,UAAU,CAAC;AACtB,CAAC,CAAC;AAlCG,QAAA,eAAe,mBAkClB"}
1
+ {"version":3,"file":"histogram-metric.decorator.js","sourceRoot":"","sources":["../../../../src/decorator/histogram-metric/histogram-metric.decorator.ts"],"names":[],"mappings":";;;AAAA,6CAA+E;AAE/E,kDAAwF;AAGjF,MAAM,eAAe,GACxB,CACQ,UAAkB,EAClB,aAAuD,EACjC,EAAE,CAC5B,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE;IAClC,IAAI,SAAS,GAAG,sBAAQ,CAAC,eAAe,CAAC,UAAU,CAA6B,CAAC;IAEjF,IAAI,CAAC,IAAA,kBAAS,EAAC,SAAS,CAAC,EAAE,CAAC;QACxB,SAAS,GAAG,IAAI,uBAAS,CAAC;YACtB,IAAI,EAAE,UAAU;YAChB,GAAG,aAAa;YAChB,IAAI,EAAE,UAAU;SACnB,CAAC,CAAC;IACP,CAAC;IAED,oEAAoE;IACpE,MAAM,cAAc,GAAG,UAAU,CAAC,KAAM,CAAC;IAEzC,sCAAsC;IACtC,UAAU,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW;QACvC,MAAM,YAAY,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC;QAE5C,IAAI,CAAC;YACD,oEAAoE;YACpE,+DAA+D;YAC/D,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;gBAAS,CAAC;YACP,YAAY,EAAE,CAAC;QACnB,CAAC;IACL,CAAM,CAAC;IAEP,OAAO,UAAU,CAAC;AACtB,CAAC,CAAC;AAjCG,QAAA,eAAe,mBAiClB"}
@@ -0,0 +1,8 @@
1
+ import type { PreDecoratorFunction } from '../../../type/pre-decorator-function.type';
2
+ import type { LockServiceInterface } from '../interface/lock-service.interface';
3
+ import type { AbstractConstructor, AnyFn, MethodDecoratorType } from '@rnw-community/shared';
4
+ export declare const createObservableLockDecorators: (serviceToken: AbstractConstructor<LockServiceInterface>, defaultDuration: number) => {
5
+ SequentialLock$: <K extends AnyFn, TResult extends ReturnType<K>, TArgs extends Parameters<K>>(preLock: PreDecoratorFunction<TArgs, string[]> | string[], catchErrorFn$?: (error: unknown) => TResult, duration?: number) => MethodDecoratorType<K>;
6
+ ExclusiveLock$: <K extends AnyFn, TResult extends ReturnType<K>, TArgs extends Parameters<K>>(preLock: PreDecoratorFunction<TArgs, string[]> | string[], catchErrorFn$?: (error: unknown) => TResult, duration?: number) => MethodDecoratorType<K>;
7
+ };
8
+ //# sourceMappingURL=create-observable-lock-decorators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-observable-lock-decorators.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE7F,eAAO,MAAM,8BAA8B,GAAI,cAAc,mBAAmB,CAAC,oBAAoB,CAAC,EAAE,iBAAiB,MAAM;sBAOlH,CAAC,SAAS,KAAK,EAAE,OAAO,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,UAAU,CAAC,CAAC,CAAC,WAC3D,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,kBACzC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,aAChC,MAAM,KAClB,mBAAmB,CAAC,CAAC,CAAC;qBAJ5B,CAAC,SAAS,KAAK,EAAE,OAAO,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,UAAU,CAAC,CAAC,CAAC,WAC3D,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,kBACzC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,aAChC,MAAM,KAClB,mBAAmB,CAAC,CAAC,CAAC;CAiBxC,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createObservableLockDecorators = void 0;
4
+ const execute_lock_observable_util_1 = require("../util/execute-lock-observable.util");
5
+ const get_lock_service_util_1 = require("../util/get-lock-service.util");
6
+ const get_method_name_util_1 = require("../util/get-method-name.util");
7
+ const inject_lock_service_util_1 = require("../util/inject-lock-service.util");
8
+ const createObservableLockDecorators = (serviceToken, defaultDuration) => {
9
+ const serviceSymbol = Symbol('LockService');
10
+ const getService = (instance) => (0, get_lock_service_util_1.getLockService)(instance, serviceSymbol);
11
+ const createDecorator = (retryCount) => (preLock, catchErrorFn$, duration) => (target, propertyKey, descriptor) => {
12
+ (0, inject_lock_service_util_1.injectLockService)(target, serviceToken, serviceSymbol);
13
+ descriptor.value = (0, execute_lock_observable_util_1.executeLockObservable)(getService, preLock, duration ?? defaultDuration, retryCount,
14
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
15
+ descriptor.value, (0, get_method_name_util_1.getMethodName)(target, propertyKey), catchErrorFn$);
16
+ return descriptor;
17
+ };
18
+ // eslint-disable-next-line no-undefined
19
+ return { SequentialLock$: createDecorator(undefined), ExclusiveLock$: createDecorator(0) };
20
+ };
21
+ exports.createObservableLockDecorators = createObservableLockDecorators;
22
+ //# sourceMappingURL=create-observable-lock-decorators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-observable-lock-decorators.js","sourceRoot":"","sources":["../../../../../src/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.ts"],"names":[],"mappings":";;;AAAA,uFAA6E;AAC7E,yEAA+D;AAC/D,uEAA6D;AAC7D,+EAAqE;AAM9D,MAAM,8BAA8B,GAAG,CAAC,YAAuD,EAAE,eAAuB,EAAE,EAAE;IAC/H,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,CAAC,QAAiB,EAAwB,EAAE,CAC3D,IAAA,sCAAc,EAAC,QAAmC,EAAE,aAAa,CAAC,CAAC;IAEvE,MAAM,eAAe,GACjB,CAAC,UAA8B,EAAE,EAAE,CAC/B,CACQ,OAAyD,EACzD,aAA2C,EAC3C,QAAiB,EACK,EAAE,CAC5B,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE;QAChC,IAAA,4CAAiB,EAAC,MAAM,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;QAEvD,UAAU,CAAC,KAAK,GAAG,IAAA,oDAAqB,EACpC,UAAU,EAAE,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,UAAU;QAC5D,oEAAoE;QACpE,UAAU,CAAC,KAAM,EACjB,IAAA,oCAAa,EAAC,MAAM,EAAE,WAAW,CAAC,EAClC,aAAa,CACX,CAAC;QAEP,OAAO,UAAU,CAAC;IACtB,CAAC,CAAC;IAEd,wCAAwC;IACxC,OAAO,EAAE,eAAe,EAAE,eAAe,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/F,CAAC,CAAC;AA5BW,QAAA,8BAA8B,kCA4BzC"}
@@ -0,0 +1,8 @@
1
+ import type { PreDecoratorFunction } from '../../../type/pre-decorator-function.type';
2
+ import type { LockServiceInterface } from '../interface/lock-service.interface';
3
+ import type { AbstractConstructor, AnyFn, MethodDecoratorType } from '@rnw-community/shared';
4
+ export declare const createPromiseLockDecorators: (serviceToken: AbstractConstructor<LockServiceInterface>, defaultDuration: number) => {
5
+ SequentialLock: <K extends AnyFn, TResult extends ReturnType<K>, TArgs extends Parameters<K>>(preLock: PreDecoratorFunction<TArgs, string[]> | string[], catchErrorFn?: (error: unknown) => TResult, duration?: number) => MethodDecoratorType<K>;
6
+ ExclusiveLock: <K extends AnyFn, TResult extends ReturnType<K>, TArgs extends Parameters<K>>(preLock: PreDecoratorFunction<TArgs, string[]> | string[], catchErrorFn?: (error: unknown) => TResult, duration?: number) => MethodDecoratorType<K>;
7
+ };
8
+ //# sourceMappingURL=create-promise-lock-decorators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-promise-lock-decorators.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE7F,eAAO,MAAM,2BAA2B,GAAI,cAAc,mBAAmB,CAAC,oBAAoB,CAAC,EAAE,iBAAiB,MAAM;qBAO/G,CAAC,SAAS,KAAK,EAAE,OAAO,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,UAAU,CAAC,CAAC,CAAC,WAC3D,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,iBAC1C,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,aAC/B,MAAM,KAClB,mBAAmB,CAAC,CAAC,CAAC;oBAJ5B,CAAC,SAAS,KAAK,EAAE,OAAO,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,UAAU,CAAC,CAAC,CAAC,WAC3D,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,iBAC1C,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,aAC/B,MAAM,KAClB,mBAAmB,CAAC,CAAC,CAAC;CAiBxC,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createPromiseLockDecorators = void 0;
4
+ const execute_lock_promise_util_1 = require("../util/execute-lock-promise.util");
5
+ const get_lock_service_util_1 = require("../util/get-lock-service.util");
6
+ const get_method_name_util_1 = require("../util/get-method-name.util");
7
+ const inject_lock_service_util_1 = require("../util/inject-lock-service.util");
8
+ const createPromiseLockDecorators = (serviceToken, defaultDuration) => {
9
+ const serviceSymbol = Symbol('LockService');
10
+ const getService = (instance) => (0, get_lock_service_util_1.getLockService)(instance, serviceSymbol);
11
+ const createDecorator = (retryCount) => (preLock, catchErrorFn, duration) => (target, propertyKey, descriptor) => {
12
+ (0, inject_lock_service_util_1.injectLockService)(target, serviceToken, serviceSymbol);
13
+ descriptor.value = (0, execute_lock_promise_util_1.executeLockPromise)(getService, preLock, duration ?? defaultDuration, retryCount,
14
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
15
+ descriptor.value, (0, get_method_name_util_1.getMethodName)(target, propertyKey), catchErrorFn);
16
+ return descriptor;
17
+ };
18
+ // eslint-disable-next-line no-undefined
19
+ return { SequentialLock: createDecorator(undefined), ExclusiveLock: createDecorator(0) };
20
+ };
21
+ exports.createPromiseLockDecorators = createPromiseLockDecorators;
22
+ //# sourceMappingURL=create-promise-lock-decorators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-promise-lock-decorators.js","sourceRoot":"","sources":["../../../../../src/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.ts"],"names":[],"mappings":";;;AAAA,iFAAuE;AACvE,yEAA+D;AAC/D,uEAA6D;AAC7D,+EAAqE;AAM9D,MAAM,2BAA2B,GAAG,CAAC,YAAuD,EAAE,eAAuB,EAAE,EAAE;IAC5H,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,CAAC,QAAiB,EAAwB,EAAE,CAC3D,IAAA,sCAAc,EAAC,QAAmC,EAAE,aAAa,CAAC,CAAC;IAEvE,MAAM,eAAe,GACjB,CAAC,UAA8B,EAAE,EAAE,CAC/B,CACQ,OAAyD,EACzD,YAA0C,EAC1C,QAAiB,EACK,EAAE,CAC5B,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE;QAChC,IAAA,4CAAiB,EAAC,MAAM,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;QAEvD,UAAU,CAAC,KAAK,GAAG,IAAA,8CAAkB,EACjC,UAAU,EAAE,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,UAAU;QAC5D,oEAAoE;QACpE,UAAU,CAAC,KAAM,EACjB,IAAA,oCAAa,EAAC,MAAM,EAAE,WAAW,CAAC,EAClC,YAAY,CACV,CAAC;QAEP,OAAO,UAAU,CAAC;IACtB,CAAC,CAAC;IAEd,wCAAwC;IACxC,OAAO,EAAE,cAAc,EAAE,eAAe,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7F,CAAC,CAAC;AA5BW,QAAA,2BAA2B,+BA4BtC"}
@@ -0,0 +1,4 @@
1
+ export interface LockHandle {
2
+ release(): Promise<void>;
3
+ }
4
+ //# sourceMappingURL=lock-handle.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lock-handle.interface.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/lock/interface/lock-handle.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=method-decorator.type.js.map
3
+ //# sourceMappingURL=lock-handle.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lock-handle.interface.js","sourceRoot":"","sources":["../../../../../src/decorator/lock/interface/lock-handle.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import type { LockHandle } from './lock-handle.interface';
2
+ export interface LockServiceInterface {
3
+ acquire(resources: string[], duration: number): Promise<LockHandle>;
4
+ tryAcquire(resources: string[], duration: number): Promise<LockHandle | undefined>;
5
+ }
6
+ //# sourceMappingURL=lock-service.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lock-service.interface.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/lock/interface/lock-service.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,WAAW,oBAAoB;IACjC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACpE,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;CACtF"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=lock-service.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lock-service.interface.js","sourceRoot":"","sources":["../../../../../src/decorator/lock/interface/lock-service.interface.ts"],"names":[],"mappings":""}
@@ -1,4 +1,8 @@
1
- import type { MethodDecoratorType } from '../../../type/method-decorator.type';
2
1
  import type { PreDecoratorFunction } from '../../../type/pre-decorator-function.type';
3
- export declare const LockObservable: <K extends (...args: any) => any, TResult extends ReturnType<K>, TArgs extends Parameters<K>>(preLock: PreDecoratorFunction<TArgs, string[]> | string[], duration: number, catchErrorFn$?: (error: unknown) => TResult) => MethodDecoratorType<K>;
2
+ import type { AnyFn, MethodDecoratorType } from '@rnw-community/shared';
3
+ /**
4
+ * @deprecated Use `createObservableLockDecorators` instead. This decorator requires class inheritance from `LockableService`.
5
+ * @see {@link createObservableLockDecorators} for the DI-based approach.
6
+ */
7
+ export declare const LockObservable: <K extends AnyFn, TResult extends ReturnType<K>, TArgs extends Parameters<K>>(preLock: PreDecoratorFunction<TArgs, string[]> | string[], duration: number, catchErrorFn$?: (error: unknown) => TResult, retryCount?: number) => MethodDecoratorType<K>;
4
8
  //# sourceMappingURL=lock-observable.decorator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lock-observable.decorator.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/lock/lock-observable/lock-observable.decorator.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAGtF,eAAO,MAAM,cAAc,GAEtB,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,EAAE,OAAO,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,UAAU,CAAC,CAAC,CAAC,EACpF,SAAS,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,EACzD,UAAU,MAAM,EAChB,gBAAgB,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,KAC5C,mBAAmB,CAAC,CAAC,CAuCvB,CAAC"}
1
+ {"version":3,"file":"lock-observable.decorator.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/lock/lock-observable/lock-observable.decorator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAExE;;;GAGG;AACH,eAAO,MAAM,cAAc,GACtB,CAAC,SAAS,KAAK,EAAE,OAAO,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,UAAU,CAAC,CAAC,CAAC,EACpE,SAAS,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,EACzD,UAAU,MAAM,EAChB,gBAAgB,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,EAC3C,aAAa,MAAM,KACpB,mBAAmB,CAAC,CAAC,CAWvB,CAAC"}
@@ -1,31 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LockObservable = void 0;
4
- const rxjs_1 = require("rxjs");
5
- const shared_1 = require("@rnw-community/shared");
6
- const run_pre_lock_util_1 = require("../util/run-pre-lock.util");
7
- const validate_redlock_util_1 = require("../util/validate-redlock.util");
8
- const LockObservable =
9
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
10
- (preLock, duration, catchErrorFn$) => (target, propertyKey, descriptor) => {
4
+ const execute_lock_observable_util_1 = require("../util/execute-lock-observable.util");
5
+ const get_method_name_util_1 = require("../util/get-method-name.util");
6
+ const get_redlock_service_util_1 = require("../util/get-redlock-service.util");
7
+ /**
8
+ * @deprecated Use `createObservableLockDecorators` instead. This decorator requires class inheritance from `LockableService`.
9
+ * @see {@link createObservableLockDecorators} for the DI-based approach.
10
+ */
11
+ const LockObservable = (preLock, duration, catchErrorFn$, retryCount) => (target, propertyKey, descriptor) => {
12
+ descriptor.value = (0, execute_lock_observable_util_1.executeLockObservable)(get_redlock_service_util_1.getRedlockService, preLock, duration, retryCount,
11
13
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
12
- const originalMethod = descriptor.value;
13
- // eslint-disable-next-line func-names
14
- descriptor.value = function (...args) {
15
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
16
- return (0, rxjs_1.of)(true).pipe((0, rxjs_1.tap)(() => void (0, validate_redlock_util_1.validateRedlock)(this)), (0, rxjs_1.map)(() => (0, run_pre_lock_util_1.runPreLock)(preLock, ...args)), (0, rxjs_1.concatMap)(lockKeys => (0, rxjs_1.from)(this.redlock.acquire(lockKeys, duration)).pipe((0, rxjs_1.concatMap)(currentLock => {
17
- const result = originalMethod.apply(this, args);
18
- if (!(0, rxjs_1.isObservable)(result)) {
19
- void currentLock.release().catch(() => void 0);
20
- throw new Error(`Method ${target.constructor.name}::${String(propertyKey)} does not return an observable`);
21
- }
22
- return result.pipe((0, rxjs_1.finalize)(() => {
23
- void currentLock.release().catch(() => void 0);
24
- }));
25
- }), (0, shared_1.isDefined)(catchErrorFn$)
26
- ? (0, rxjs_1.catchError)((err) => catchErrorFn$(err))
27
- : (0, rxjs_1.tap)())));
28
- };
14
+ descriptor.value, (0, get_method_name_util_1.getMethodName)(target, propertyKey), catchErrorFn$);
29
15
  return descriptor;
30
16
  };
31
17
  exports.LockObservable = LockObservable;
@@ -1 +1 @@
1
- {"version":3,"file":"lock-observable.decorator.js","sourceRoot":"","sources":["../../../../../src/decorator/lock/lock-observable/lock-observable.decorator.ts"],"names":[],"mappings":";;;AAAA,+BAA0G;AAE1G,kDAAkD;AAElD,iEAAuD;AACvD,yEAAgE;AAMzD,MAAM,cAAc;AACvB,8DAA8D;AAC9D,CACQ,OAAyD,EACzD,QAAgB,EAChB,aAA2C,EACrB,EAAE,CAC5B,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE;IAChC,oEAAoE;IACpE,MAAM,cAAc,GAAG,UAAU,CAAC,KAAM,CAAC;IAEzC,sCAAsC;IACtC,UAAU,CAAC,KAAK,GAAG,UAAiC,GAAG,IAAW;QAC9D,+DAA+D;QAC/D,OAAO,IAAA,SAAE,EAAC,IAAI,CAAC,CAAC,IAAI,CAChB,IAAA,UAAG,EAAC,GAAG,EAAE,CAAC,KAAK,IAAA,uCAAe,EAAC,IAAI,CAAC,CAAC,EACrC,IAAA,UAAG,EAAC,GAAG,EAAE,CAAC,IAAA,8BAAU,EAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,EACvC,IAAA,gBAAS,EAAC,QAAQ,CAAC,EAAE,CACjB,IAAA,WAAI,EAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAC/C,IAAA,gBAAS,EAAC,WAAW,CAAC,EAAE;YACpB,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAwB,CAAC;YAEvE,IAAI,CAAC,IAAA,mBAAY,EAAC,MAAM,CAAC,EAAE,CAAC;gBACxB,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;gBAE/C,MAAM,IAAI,KAAK,CACX,UAAU,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM,CAAC,WAAW,CAAC,gCAAgC,CAC5F,CAAC;YACN,CAAC;YAED,OAAO,MAAM,CAAC,IAAI,CACd,IAAA,eAAQ,EAAC,GAAG,EAAE;gBACV,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;YACnD,CAAC,CAAC,CACL,CAAC;QACN,CAAC,CAAC,EACF,IAAA,kBAAS,EAAC,aAAa,CAAC;YACpB,CAAC,CAAC,IAAA,iBAAU,EAAC,CAAC,GAAY,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAwB,CAAC;YACzE,CAAC,CAAC,IAAA,UAAG,GAAE,CACd,CACJ,CACO,CAAC;IACjB,CAAM,CAAC;IAEP,OAAO,UAAU,CAAC;AACtB,CAAC,CAAC;AA7CG,QAAA,cAAc,kBA6CjB"}
1
+ {"version":3,"file":"lock-observable.decorator.js","sourceRoot":"","sources":["../../../../../src/decorator/lock/lock-observable/lock-observable.decorator.ts"],"names":[],"mappings":";;;AAAA,uFAA6E;AAC7E,uEAA6D;AAC7D,+EAAqE;AAKrE;;;GAGG;AACI,MAAM,cAAc,GACvB,CACQ,OAAyD,EACzD,QAAgB,EAChB,aAA2C,EAC3C,UAAmB,EACG,EAAE,CAC5B,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE;IAChC,UAAU,CAAC,KAAK,GAAG,IAAA,oDAAqB,EACpC,4CAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU;IAChD,oEAAoE;IACpE,UAAU,CAAC,KAAM,EACjB,IAAA,oCAAa,EAAC,MAAM,EAAE,WAAW,CAAC,EAClC,aAAa,CACX,CAAC;IAEP,OAAO,UAAU,CAAC;AACtB,CAAC,CAAC;AAjBG,QAAA,cAAc,kBAiBjB"}
@@ -1,4 +1,8 @@
1
- import type { MethodDecoratorType } from '../../../type/method-decorator.type';
2
1
  import type { PreDecoratorFunction } from '../../../type/pre-decorator-function.type';
3
- export declare const LockPromise: <K extends (...args: any) => any, TResult extends ReturnType<K>, TArgs extends Parameters<K>>(preLock: PreDecoratorFunction<TArgs, string[]> | string[], duration: number, catchErrorFn?: (error: unknown) => TResult) => MethodDecoratorType<K>;
2
+ import type { AnyFn, MethodDecoratorType } from '@rnw-community/shared';
3
+ /**
4
+ * @deprecated Use `createPromiseLockDecorators` instead. This decorator requires class inheritance from `LockableService`.
5
+ * @see {@link createPromiseLockDecorators} for the DI-based approach.
6
+ */
7
+ export declare const LockPromise: <K extends AnyFn, TResult extends ReturnType<K>, TArgs extends Parameters<K>>(preLock: PreDecoratorFunction<TArgs, string[]> | string[], duration: number, catchErrorFn?: (error: unknown) => TResult, retryCount?: number) => MethodDecoratorType<K>;
4
8
  //# sourceMappingURL=lock-promise.decorator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lock-promise.decorator.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/lock/lock-promise/lock-promise.decorator.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAGtF,eAAO,MAAM,WAAW,GAEnB,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,EAAE,OAAO,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,UAAU,CAAC,CAAC,CAAC,EACpF,SAAS,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,EACzD,UAAU,MAAM,EAChB,eAAe,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,KAC3C,mBAAmB,CAAC,CAAC,CA8CvB,CAAC"}
1
+ {"version":3,"file":"lock-promise.decorator.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/lock/lock-promise/lock-promise.decorator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAExE;;;GAGG;AACH,eAAO,MAAM,WAAW,GACnB,CAAC,SAAS,KAAK,EAAE,OAAO,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,UAAU,CAAC,CAAC,CAAC,EACpE,SAAS,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,EACzD,UAAU,MAAM,EAChB,eAAe,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,EAC1C,aAAa,MAAM,KACpB,mBAAmB,CAAC,CAAC,CAUvB,CAAC"}
@@ -1,48 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LockPromise = void 0;
4
- const shared_1 = require("@rnw-community/shared");
5
- const run_pre_lock_util_1 = require("../util/run-pre-lock.util");
6
- const validate_redlock_util_1 = require("../util/validate-redlock.util");
7
- const LockPromise =
8
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
- (preLock, duration, catchErrorFn) => (target, propertyKey, descriptor) => {
10
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
11
- const originalMethod = descriptor.value;
12
- // @ts-expect-error TODO: Provide proper types
13
- // eslint-disable-next-line func-names
14
- descriptor.value = function (...args) {
15
- let lockKeys;
16
- try {
17
- (0, validate_redlock_util_1.validateRedlock)(this);
18
- lockKeys = (0, run_pre_lock_util_1.runPreLock)(preLock, ...args);
19
- }
20
- catch (error) {
21
- // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
22
- return Promise.reject(error);
23
- }
24
- return this.redlock
25
- .acquire(lockKeys, duration)
26
- .then(currentLock => {
27
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
28
- const originalResult = originalMethod.apply(this, args);
29
- if (!(0, shared_1.isPromise)(originalResult)) {
30
- // HINT: https://github.com/mike-marcacci/node-redlock/issues/168
31
- void currentLock.release().catch(() => void 0);
32
- throw new Error(`Method ${target.constructor.name}::${String(propertyKey)} does not return a promise`);
33
- }
34
- return originalResult.finally(() => {
35
- // HINT: https://github.com/mike-marcacci/node-redlock/issues/168
36
- void currentLock.release().catch(() => void 0);
37
- });
38
- })
39
- .catch((err) => {
40
- if ((0, shared_1.isDefined)(catchErrorFn)) {
41
- return catchErrorFn(err);
42
- }
43
- throw err;
44
- });
45
- };
4
+ const execute_lock_promise_util_1 = require("../util/execute-lock-promise.util");
5
+ const get_method_name_util_1 = require("../util/get-method-name.util");
6
+ const get_redlock_service_util_1 = require("../util/get-redlock-service.util");
7
+ /**
8
+ * @deprecated Use `createPromiseLockDecorators` instead. This decorator requires class inheritance from `LockableService`.
9
+ * @see {@link createPromiseLockDecorators} for the DI-based approach.
10
+ */
11
+ const LockPromise = (preLock, duration, catchErrorFn, retryCount) => (target, propertyKey, descriptor) => {
12
+ descriptor.value = (0, execute_lock_promise_util_1.executeLockPromise)(get_redlock_service_util_1.getRedlockService, preLock, duration, retryCount, descriptor.value, (0, get_method_name_util_1.getMethodName)(target, propertyKey), catchErrorFn);
46
13
  return descriptor;
47
14
  };
48
15
  exports.LockPromise = LockPromise;
@@ -1 +1 @@
1
- {"version":3,"file":"lock-promise.decorator.js","sourceRoot":"","sources":["../../../../../src/decorator/lock/lock-promise/lock-promise.decorator.ts"],"names":[],"mappings":";;;AAAA,kDAA6D;AAE7D,iEAAuD;AACvD,yEAAgE;AAMzD,MAAM,WAAW;AACpB,8DAA8D;AAC9D,CACQ,OAAyD,EACzD,QAAgB,EAChB,YAA0C,EACpB,EAAE,CAC5B,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE;IAChC,oEAAoE;IACpE,MAAM,cAAc,GAAG,UAAU,CAAC,KAAM,CAAC;IAEzC,8CAA8C;IAC9C,sCAAsC;IACtC,UAAU,CAAC,KAAK,GAAG,UAAiC,GAAG,IAAW;QAC9D,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACD,IAAA,uCAAe,EAAC,IAAI,CAAC,CAAC;YACtB,QAAQ,GAAG,IAAA,8BAAU,EAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,2EAA2E;YAC3E,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,IAAI,CAAC,OAAO;aACd,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC;aAC3B,IAAI,CAAC,WAAW,CAAC,EAAE;YAChB,mEAAmE;YACnE,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,CAAC,IAAA,kBAAS,EAAC,cAAc,CAAC,EAAE,CAAC;gBAC7B,iEAAiE;gBACjE,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;gBAE/C,MAAM,IAAI,KAAK,CACX,UAAU,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM,CAAC,WAAW,CAAC,4BAA4B,CACxF,CAAC;YACN,CAAC;YAED,OAAO,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE;gBAC/B,iEAAiE;gBACjE,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACpB,IAAI,IAAA,kBAAS,EAAC,YAAY,CAAC,EAAE,CAAC;gBAC1B,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;YAC7B,CAAC;YAED,MAAM,GAAG,CAAC;QACd,CAAC,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,OAAO,UAAU,CAAC;AACtB,CAAC,CAAC;AApDG,QAAA,WAAW,eAoDd"}
1
+ {"version":3,"file":"lock-promise.decorator.js","sourceRoot":"","sources":["../../../../../src/decorator/lock/lock-promise/lock-promise.decorator.ts"],"names":[],"mappings":";;;AAAA,iFAAuE;AACvE,uEAA6D;AAC7D,+EAAqE;AAKrE;;;GAGG;AACI,MAAM,WAAW,GACpB,CACQ,OAAyD,EACzD,QAAgB,EAChB,YAA0C,EAC1C,UAAmB,EACG,EAAE,CAC5B,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE;IAChC,UAAU,CAAC,KAAK,GAAG,IAAA,8CAAkB,EACjC,4CAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAChD,UAAU,CAAC,KAAU,EACrB,IAAA,oCAAa,EAAC,MAAM,EAAE,WAAW,CAAC,EAClC,YAAY,CACV,CAAC;IAEP,OAAO,UAAU,CAAC;AACtB,CAAC,CAAC;AAhBG,QAAA,WAAW,eAgBd"}
@@ -1,5 +1,8 @@
1
1
  import Redlock, { type Settings } from 'redlock';
2
2
  import type Redis from 'ioredis';
3
+ /**
4
+ * @deprecated Use `createPromiseLockDecorators` or `createObservableLockDecorators` with a custom `LockServiceInterface` instead.
5
+ */
3
6
  export declare class LockableService {
4
7
  private readonly redisClient;
5
8
  readonly redlock: Redlock;
@@ -1 +1 @@
1
- {"version":3,"file":"lockable.service.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/lock/service/lockable.service.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAGjC,qBAAa,eAAe;IAKpB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAJhC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;gBAIL,WAAW,EAAE,KAAK,EACnC,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC;CAIlC"}
1
+ {"version":3,"file":"lockable.service.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/lock/service/lockable.service.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC;;GAEG;AACH,qBAAa,eAAe;IAKpB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAJhC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;gBAIL,WAAW,EAAE,KAAK,EACnC,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC;CAIlC"}
@@ -5,7 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.LockableService = void 0;
7
7
  const redlock_1 = __importDefault(require("redlock"));
8
- // HINT: We need redlock instance with redis for the decorator
8
+ /**
9
+ * @deprecated Use `createPromiseLockDecorators` or `createObservableLockDecorators` with a custom `LockServiceInterface` instead.
10
+ */
9
11
  class LockableService {
10
12
  constructor(
11
13
  // TODO: Add support for multiple redis clients/sentinels/clusters?
@@ -1 +1 @@
1
- {"version":3,"file":"lockable.service.js","sourceRoot":"","sources":["../../../../../src/decorator/lock/service/lockable.service.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAiD;AAIjD,8DAA8D;AAC9D,MAAa,eAAe;IAGxB;IACI,mEAAmE;IAClD,WAAkB,EACnC,OAA2B;QADV,gBAAW,GAAX,WAAW,CAAO;QAGnC,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;CACJ;AAVD,0CAUC"}
1
+ {"version":3,"file":"lockable.service.js","sourceRoot":"","sources":["../../../../../src/decorator/lock/service/lockable.service.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAiD;AAIjD;;GAEG;AACH,MAAa,eAAe;IAGxB;IACI,mEAAmE;IAClD,WAAkB,EACnC,OAA2B;QADV,gBAAW,GAAX,WAAW,CAAO;QAGnC,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;CACJ;AAVD,0CAUC"}
@@ -0,0 +1,4 @@
1
+ import type { PreDecoratorFunction } from '../../../type/pre-decorator-function.type';
2
+ import type { LockServiceInterface } from '../interface/lock-service.interface';
3
+ export declare const executeLockObservable: <TResult, TArgs extends unknown[] = unknown[]>(getLockServiceFn: (instance: unknown) => LockServiceInterface, preLock: PreDecoratorFunction<TArgs, string[]> | string[], duration: number, retryCount: number | undefined, originalMethod: (...fnArgs: TArgs) => unknown, methodName: string, catchErrorFn$?: (error: unknown) => TResult) => (this: unknown, ...args: TArgs) => TResult;
4
+ //# sourceMappingURL=execute-lock-observable.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-lock-observable.util.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/lock/util/execute-lock-observable.util.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAEhF,eAAO,MAAM,qBAAqB,GAAI,OAAO,EAAE,KAAK,SAAS,OAAO,EAAE,GAAG,OAAO,EAAE,EAC9E,kBAAkB,CAAC,QAAQ,EAAE,OAAO,KAAK,oBAAoB,EAC7D,SAAS,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,EACzD,UAAU,MAAM,EAChB,YAAY,MAAM,GAAG,SAAS,EAC9B,gBAAgB,CAAC,GAAG,MAAM,EAAE,KAAK,KAAK,OAAO,EAC7C,YAAY,MAAM,EAClB,gBAAgB,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,MAEhC,MAAM,OAAO,EAAE,GAAG,MAAM,KAAK,KAAG,OAmC9C,CAAC"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.executeLockObservable = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ const shared_1 = require("@rnw-community/shared");
6
+ const run_pre_lock_util_1 = require("./run-pre-lock.util");
7
+ const executeLockObservable = (getLockServiceFn, preLock, duration, retryCount, originalMethod, methodName, catchErrorFn$
8
+ // eslint-disable-next-line @typescript-eslint/max-params, func-names
9
+ ) => function (...args) {
10
+ return (0, rxjs_1.defer)(() => {
11
+ const lockService = getLockServiceFn(this);
12
+ const lockKeys = (0, run_pre_lock_util_1.runPreLock)(preLock, ...args);
13
+ const acquireFn = retryCount === 0
14
+ ? () => lockService.tryAcquire(lockKeys, duration)
15
+ : () => lockService.acquire(lockKeys, duration);
16
+ return (0, rxjs_1.from)(acquireFn()).pipe((0, rxjs_1.concatMap)(currentLock => {
17
+ if (!(0, shared_1.isDefined)(currentLock)) {
18
+ return rxjs_1.EMPTY;
19
+ }
20
+ const result = originalMethod.apply(this, args);
21
+ if (!(0, rxjs_1.isObservable)(result)) {
22
+ void currentLock.release().catch(() => void 0);
23
+ throw new Error(`Method ${methodName} does not return an observable`);
24
+ }
25
+ return result.pipe((0, rxjs_1.finalize)(() => {
26
+ void currentLock.release().catch(() => void 0);
27
+ }));
28
+ }), (0, shared_1.isDefined)(catchErrorFn$)
29
+ ? (0, rxjs_1.catchError)((err) => catchErrorFn$(err))
30
+ : (0, rxjs_1.tap)());
31
+ });
32
+ };
33
+ exports.executeLockObservable = executeLockObservable;
34
+ //# sourceMappingURL=execute-lock-observable.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-lock-observable.util.js","sourceRoot":"","sources":["../../../../../src/decorator/lock/util/execute-lock-observable.util.ts"],"names":[],"mappings":";;;AAAA,+BAA+G;AAE/G,kDAAkD;AAElD,2DAAiD;AAK1C,MAAM,qBAAqB,GAAG,CACjC,gBAA6D,EAC7D,OAAyD,EACzD,QAAgB,EAChB,UAA8B,EAC9B,cAA6C,EAC7C,UAAkB,EAClB,aAA2C;AAC3C,qEAAqE;EACvE,EAAE,CAAC,UAAyB,GAAG,IAAW;IACxC,OAAO,IAAA,YAAK,EAAC,GAAG,EAAE;QACd,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAA,8BAAU,EAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAE9C,MAAM,SAAS,GACX,UAAU,KAAK,CAAC;YACZ,CAAC,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC;YAClD,CAAC,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAExD,OAAO,IAAA,WAAI,EAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CACzB,IAAA,gBAAS,EAAC,WAAW,CAAC,EAAE;YACpB,IAAI,CAAC,IAAA,kBAAS,EAAC,WAAW,CAAC,EAAE,CAAC;gBAC1B,OAAO,YAAK,CAAC;YACjB,CAAC;YAED,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAwB,CAAC;YAEvE,IAAI,CAAC,IAAA,mBAAY,EAAC,MAAM,CAAC,EAAE,CAAC;gBACxB,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;gBAE/C,MAAM,IAAI,KAAK,CAAC,UAAU,UAAU,gCAAgC,CAAC,CAAC;YAC1E,CAAC;YAED,OAAO,MAAM,CAAC,IAAI,CACd,IAAA,eAAQ,EAAC,GAAG,EAAE;gBACV,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;YACnD,CAAC,CAAC,CACL,CAAC;QACN,CAAC,CAAC,EACF,IAAA,kBAAS,EAAC,aAAa,CAAC;YACpB,CAAC,CAAC,IAAA,iBAAU,EAAC,CAAC,GAAY,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAwB,CAAC;YACzE,CAAC,CAAC,IAAA,UAAG,GAAE,CACd,CAAC;IACN,CAAC,CAAY,CAAC;AAClB,CAAC,CAAC;AA5CW,QAAA,qBAAqB,yBA4ChC"}
@@ -0,0 +1,4 @@
1
+ import type { PreDecoratorFunction } from '../../../type/pre-decorator-function.type';
2
+ import type { LockServiceInterface } from '../interface/lock-service.interface';
3
+ export declare const executeLockPromise: <TArgs extends unknown[] = unknown[]>(getLockServiceFn: (instance: unknown) => LockServiceInterface, preLock: PreDecoratorFunction<TArgs, string[]> | string[], duration: number, retryCount: number | undefined, originalMethod: (...fnArgs: TArgs) => unknown, methodName: string, catchErrorFn?: (error: unknown) => unknown) => (this: unknown, ...args: TArgs) => Promise<unknown>;
4
+ //# sourceMappingURL=execute-lock-promise.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-lock-promise.util.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/lock/util/execute-lock-promise.util.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAEhF,eAAO,MAAM,kBAAkB,GAAI,KAAK,SAAS,OAAO,EAAE,GAAG,OAAO,EAAE,EAClE,kBAAkB,CAAC,QAAQ,EAAE,OAAO,KAAK,oBAAoB,EAC7D,SAAS,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,EACzD,UAAU,MAAM,EAChB,YAAY,MAAM,GAAG,SAAS,EAC9B,gBAAgB,CAAC,GAAG,MAAM,EAAE,KAAK,KAAK,OAAO,EAC7C,YAAY,MAAM,EAClB,eAAe,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,MAEzB,MAAM,OAAO,EAAE,GAAG,MAAM,KAAK,KAAG,OAAO,CAAC,OAAO,CAkCnE,CAAC"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.executeLockPromise = void 0;
4
+ const shared_1 = require("@rnw-community/shared");
5
+ const run_pre_lock_util_1 = require("./run-pre-lock.util");
6
+ const executeLockPromise = (getLockServiceFn, preLock, duration, retryCount, originalMethod, methodName, catchErrorFn
7
+ // eslint-disable-next-line @typescript-eslint/max-params, max-statements, func-names
8
+ ) => async function (...args) {
9
+ const lockService = getLockServiceFn(this);
10
+ const lockKeys = (0, run_pre_lock_util_1.runPreLock)(preLock, ...args);
11
+ try {
12
+ const currentLock = retryCount === 0
13
+ ? await lockService.tryAcquire(lockKeys, duration)
14
+ : await lockService.acquire(lockKeys, duration);
15
+ if (!(0, shared_1.isDefined)(currentLock)) {
16
+ // eslint-disable-next-line no-undefined
17
+ return undefined;
18
+ }
19
+ const originalResult = originalMethod.apply(this, args);
20
+ if (!(0, shared_1.isPromise)(originalResult)) {
21
+ // HINT: https://github.com/mike-marcacci/node-redlock/issues/168
22
+ void currentLock.release().catch(() => void 0);
23
+ throw new Error(`Method ${methodName} does not return a promise`);
24
+ }
25
+ return await originalResult.finally(() => {
26
+ // HINT: https://github.com/mike-marcacci/node-redlock/issues/168
27
+ void currentLock.release().catch(() => void 0);
28
+ });
29
+ }
30
+ catch (err) {
31
+ if ((0, shared_1.isDefined)(catchErrorFn)) {
32
+ return catchErrorFn(err);
33
+ }
34
+ throw err;
35
+ }
36
+ };
37
+ exports.executeLockPromise = executeLockPromise;
38
+ //# sourceMappingURL=execute-lock-promise.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-lock-promise.util.js","sourceRoot":"","sources":["../../../../../src/decorator/lock/util/execute-lock-promise.util.ts"],"names":[],"mappings":";;;AAAA,kDAA6D;AAE7D,2DAAiD;AAK1C,MAAM,kBAAkB,GAAG,CAC9B,gBAA6D,EAC7D,OAAyD,EACzD,QAAgB,EAChB,UAA8B,EAC9B,cAA6C,EAC7C,UAAkB,EAClB,YAA0C;AAC1C,qFAAqF;EACvF,EAAE,CAAC,KAAK,WAA0B,GAAG,IAAW;IAC9C,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAA,8BAAU,EAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAE9C,IAAI,CAAC;QACD,MAAM,WAAW,GACb,UAAU,KAAK,CAAC;YACZ,CAAC,CAAC,MAAM,WAAW,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC;YAClD,CAAC,CAAC,MAAM,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAExD,IAAI,CAAC,IAAA,kBAAS,EAAC,WAAW,CAAC,EAAE,CAAC;YAC1B,wCAAwC;YACxC,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,cAAc,GAAY,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjE,IAAI,CAAC,IAAA,kBAAS,EAAC,cAAc,CAAC,EAAE,CAAC;YAC7B,iEAAiE;YACjE,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;YAE/C,MAAM,IAAI,KAAK,CAAC,UAAU,UAAU,4BAA4B,CAAC,CAAC;QACtE,CAAC;QAED,OAAO,MAAM,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE;YACrC,iEAAiE;YACjE,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACpB,IAAI,IAAA,kBAAS,EAAC,YAAY,CAAC,EAAE,CAAC;YAC1B,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,GAAG,CAAC;IACd,CAAC;AACL,CAAC,CAAC;AA3CW,QAAA,kBAAkB,sBA2C7B"}
@@ -0,0 +1,3 @@
1
+ import type { LockServiceInterface } from '../interface/lock-service.interface';
2
+ export declare const getLockService: (instance: Record<symbol, unknown>, symbol: symbol) => LockServiceInterface;
3
+ //# sourceMappingURL=get-lock-service.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-lock-service.util.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/lock/util/get-lock-service.util.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAEhF,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,MAAM,KAAG,oBAOlF,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getLockService = void 0;
4
+ const shared_1 = require("@rnw-community/shared");
5
+ const getLockService = (instance, symbol) => {
6
+ const service = instance[symbol];
7
+ if (!(0, shared_1.isDefined)(service)) {
8
+ throw new Error('LockService was not injected. Ensure the lock service provider is registered in the NestJS module.');
9
+ }
10
+ return service;
11
+ };
12
+ exports.getLockService = getLockService;
13
+ //# sourceMappingURL=get-lock-service.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-lock-service.util.js","sourceRoot":"","sources":["../../../../../src/decorator/lock/util/get-lock-service.util.ts"],"names":[],"mappings":";;;AAAA,kDAAkD;AAI3C,MAAM,cAAc,GAAG,CAAC,QAAiC,EAAE,MAAc,EAAwB,EAAE;IACtG,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAqC,CAAC;IACrE,IAAI,CAAC,IAAA,kBAAS,EAAC,OAAO,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,oGAAoG,CAAC,CAAC;IAC1H,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AAPW,QAAA,cAAc,kBAOzB"}
@@ -0,0 +1,2 @@
1
+ export declare const getMethodName: (target: object, propertyKey: string | symbol) => string;
2
+ //# sourceMappingURL=get-method-name.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-method-name.util.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/lock/util/get-method-name.util.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,GAAI,QAAQ,MAAM,EAAE,aAAa,MAAM,GAAG,MAAM,KAAG,MACrB,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMethodName = void 0;
4
+ const getMethodName = (target, propertyKey) => `${target.constructor.name}::${String(propertyKey)}`;
5
+ exports.getMethodName = getMethodName;
6
+ //# sourceMappingURL=get-method-name.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-method-name.util.js","sourceRoot":"","sources":["../../../../../src/decorator/lock/util/get-method-name.util.ts"],"names":[],"mappings":";;;AAAO,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,WAA4B,EAAU,EAAE,CAClF,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;AAD5C,QAAA,aAAa,iBAC+B"}
@@ -0,0 +1,4 @@
1
+ import type { LockServiceInterface } from '../interface/lock-service.interface';
2
+ /** @deprecated Used by deprecated `LockPromise`/`LockObservable` decorators. */
3
+ export declare const getRedlockService: (instance: unknown) => LockServiceInterface;
4
+ //# sourceMappingURL=get-redlock-service.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-redlock-service.util.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/lock/util/get-redlock-service.util.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAGhF,gFAAgF;AAChF,eAAO,MAAM,iBAAiB,GAAI,UAAU,OAAO,KAAG,oBAYrD,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRedlockService = void 0;
4
+ const validate_redlock_util_1 = require("./validate-redlock.util");
5
+ /** @deprecated Used by deprecated `LockPromise`/`LockObservable` decorators. */
6
+ const getRedlockService = (instance) => {
7
+ const self = instance;
8
+ (0, validate_redlock_util_1.validateRedlock)(self);
9
+ return {
10
+ acquire: (keys, dur) => self.redlock.acquire(keys, dur),
11
+ tryAcquire: (keys, dur) => self.redlock
12
+ .acquire(keys, dur, { retryCount: 0 })
13
+ // eslint-disable-next-line no-undefined
14
+ .catch(() => undefined),
15
+ };
16
+ };
17
+ exports.getRedlockService = getRedlockService;
18
+ //# sourceMappingURL=get-redlock-service.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-redlock-service.util.js","sourceRoot":"","sources":["../../../../../src/decorator/lock/util/get-redlock-service.util.ts"],"names":[],"mappings":";;;AAAA,mEAA0D;AAM1D,gFAAgF;AACzE,MAAM,iBAAiB,GAAG,CAAC,QAAiB,EAAwB,EAAE;IACzE,MAAM,IAAI,GAAG,QAA2B,CAAC;IACzC,IAAA,uCAAe,EAAC,IAAI,CAAC,CAAC;IAEtB,OAAO;QACH,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAmC;QACzF,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CACtB,IAAI,CAAC,OAAO;aACP,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;YACtC,wCAAwC;aACvC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAoC;KACrE,CAAC;AACN,CAAC,CAAC;AAZW,QAAA,iBAAiB,qBAY5B"}
@@ -0,0 +1,4 @@
1
+ import type { LockServiceInterface } from '../interface/lock-service.interface';
2
+ import type { AbstractConstructor } from '@rnw-community/shared';
3
+ export declare const injectLockService: (target: object, serviceToken: AbstractConstructor<LockServiceInterface>, symbol: symbol) => void;
4
+ //# sourceMappingURL=inject-lock-service.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject-lock-service.util.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/lock/util/inject-lock-service.util.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,eAAO,MAAM,iBAAiB,GAC1B,QAAQ,MAAM,EACd,cAAc,mBAAmB,CAAC,oBAAoB,CAAC,EACvD,QAAQ,MAAM,KACf,IAEF,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.injectLockService = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const injectLockService = (target, serviceToken, symbol) => {
6
+ (0, common_1.Inject)(serviceToken)(target, symbol);
7
+ };
8
+ exports.injectLockService = injectLockService;
9
+ //# sourceMappingURL=inject-lock-service.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject-lock-service.util.js","sourceRoot":"","sources":["../../../../../src/decorator/lock/util/inject-lock-service.util.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AAKjC,MAAM,iBAAiB,GAAG,CAC7B,MAAc,EACd,YAAuD,EACvD,MAAc,EACV,EAAE;IACN,IAAA,eAAM,EAAC,YAAY,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC,CAAC;AANW,QAAA,iBAAiB,qBAM5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"run-pre-lock.util.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/lock/util/run-pre-lock.util.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEtF,eAAO,MAAM,UAAU,GAAI,KAAK,SAAS,OAAO,EAAE,GAAG,OAAO,EAAE,EAC1D,SAAS,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,EACzD,GAAG,MAAM,KAAK,KACf,MAAM,EAQR,CAAC"}
1
+ {"version":3,"file":"run-pre-lock.util.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/lock/util/run-pre-lock.util.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEtF,eAAO,MAAM,UAAU,GAAI,KAAK,SAAS,OAAO,EAAE,GAAG,OAAO,EAAE,EAC1D,SAAS,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,EACzD,GAAG,MAAM,KAAK,KACf,MAAM,EAaR,CAAC"}