@rnw-community/nestjs-enterprise 1.14.1 → 2.0.3

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 (155) hide show
  1. package/dist/cjs/decorator/histogram-metric/histogram-metric-tracking.d.ts +14 -0
  2. package/dist/cjs/decorator/histogram-metric/histogram-metric-tracking.d.ts.map +1 -0
  3. package/dist/cjs/decorator/histogram-metric/histogram-metric-tracking.js +58 -0
  4. package/dist/cjs/decorator/histogram-metric/histogram-metric-tracking.js.map +1 -0
  5. package/dist/cjs/decorator/histogram-metric/histogram-metric.decorator.d.ts +5 -2
  6. package/dist/cjs/decorator/histogram-metric/histogram-metric.decorator.d.ts.map +1 -1
  7. package/dist/cjs/decorator/histogram-metric/histogram-metric.decorator.js +58 -21
  8. package/dist/cjs/decorator/histogram-metric/histogram-metric.decorator.js.map +1 -1
  9. package/dist/cjs/decorator/lock/create-lock-service-store.d.ts +4 -0
  10. package/dist/cjs/decorator/lock/create-lock-service-store.d.ts.map +1 -0
  11. package/dist/cjs/decorator/lock/create-lock-service-store.js +22 -0
  12. package/dist/cjs/decorator/lock/create-lock-service-store.js.map +1 -0
  13. package/dist/cjs/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.d.ts +8 -3
  14. package/dist/cjs/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.d.ts.map +1 -1
  15. package/dist/cjs/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.js +75 -12
  16. package/dist/cjs/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.js.map +1 -1
  17. package/dist/cjs/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.d.ts +6 -3
  18. package/dist/cjs/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.d.ts.map +1 -1
  19. package/dist/cjs/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.js +72 -12
  20. package/dist/cjs/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.js.map +1 -1
  21. package/dist/cjs/decorator/lock/lock-observable/lock-observable.decorator.d.ts +3 -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.map +1 -1
  24. package/dist/cjs/decorator/lock/lock-promise/lock-promise.decorator.d.ts +1 -1
  25. package/dist/cjs/decorator/lock/lock-promise/lock-promise.decorator.d.ts.map +1 -1
  26. package/dist/cjs/decorator/lock/lock-promise/lock-promise.decorator.js.map +1 -1
  27. package/dist/cjs/decorator/lock/lock-service-not-injected-message.const.d.ts +2 -0
  28. package/dist/cjs/decorator/lock/lock-service-not-injected-message.const.d.ts.map +1 -0
  29. package/dist/cjs/decorator/lock/lock-service-not-injected-message.const.js +5 -0
  30. package/dist/cjs/decorator/lock/lock-service-not-injected-message.const.js.map +1 -0
  31. package/dist/cjs/decorator/lock/lockable.service.d.ts.map +1 -0
  32. package/dist/cjs/decorator/lock/lockable.service.js.map +1 -0
  33. package/dist/cjs/decorator/lock/resolve-resources.d.ts +3 -0
  34. package/dist/cjs/decorator/lock/resolve-resources.d.ts.map +1 -0
  35. package/dist/cjs/decorator/lock/resolve-resources.js +13 -0
  36. package/dist/cjs/decorator/lock/resolve-resources.js.map +1 -0
  37. package/dist/cjs/decorator/lock/resource-separator.const.d.ts +2 -0
  38. package/dist/cjs/decorator/lock/resource-separator.const.d.ts.map +1 -0
  39. package/dist/cjs/decorator/lock/resource-separator.const.js +5 -0
  40. package/dist/cjs/decorator/lock/resource-separator.const.js.map +1 -0
  41. package/dist/cjs/decorator/lock/util/execute-lock-observable.util.js +2 -2
  42. package/dist/cjs/decorator/lock/util/execute-lock-observable.util.js.map +1 -1
  43. package/dist/cjs/decorator/lock/util/execute-lock-promise.util.js +2 -2
  44. package/dist/cjs/decorator/lock/util/execute-lock-promise.util.js.map +1 -1
  45. package/dist/cjs/decorator/lock/util/run-pre-lock.util.d.ts.map +1 -1
  46. package/dist/cjs/decorator/lock/util/run-pre-lock.util.js +4 -10
  47. package/dist/cjs/decorator/lock/util/run-pre-lock.util.js.map +1 -1
  48. package/dist/cjs/decorator/lock/util/validate-redlock.util.d.ts +1 -1
  49. package/dist/cjs/decorator/lock/util/validate-redlock.util.d.ts.map +1 -1
  50. package/dist/cjs/decorator/log/log.decorator.d.ts +1 -8
  51. package/dist/cjs/decorator/log/log.decorator.d.ts.map +1 -1
  52. package/dist/cjs/decorator/log/log.decorator.js +11 -67
  53. package/dist/cjs/decorator/log/log.decorator.js.map +1 -1
  54. package/dist/cjs/index.d.ts +1 -1
  55. package/dist/cjs/index.d.ts.map +1 -1
  56. package/dist/cjs/index.js +1 -1
  57. package/dist/cjs/index.js.map +1 -1
  58. package/dist/esm/decorator/histogram-metric/histogram-metric-tracking.d.ts +14 -0
  59. package/dist/esm/decorator/histogram-metric/histogram-metric-tracking.d.ts.map +1 -0
  60. package/dist/esm/decorator/histogram-metric/histogram-metric-tracking.js +55 -0
  61. package/dist/esm/decorator/histogram-metric/histogram-metric-tracking.js.map +1 -0
  62. package/dist/esm/decorator/histogram-metric/histogram-metric.decorator.d.ts +5 -2
  63. package/dist/esm/decorator/histogram-metric/histogram-metric.decorator.d.ts.map +1 -1
  64. package/dist/esm/decorator/histogram-metric/histogram-metric.decorator.js +58 -21
  65. package/dist/esm/decorator/histogram-metric/histogram-metric.decorator.js.map +1 -1
  66. package/dist/esm/decorator/lock/create-lock-service-store.d.ts +4 -0
  67. package/dist/esm/decorator/lock/create-lock-service-store.d.ts.map +1 -0
  68. package/dist/esm/decorator/lock/create-lock-service-store.js +18 -0
  69. package/dist/esm/decorator/lock/create-lock-service-store.js.map +1 -0
  70. package/dist/esm/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.d.ts +8 -3
  71. package/dist/esm/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.d.ts.map +1 -1
  72. package/dist/esm/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.js +75 -12
  73. package/dist/esm/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.js.map +1 -1
  74. package/dist/esm/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.d.ts +6 -3
  75. package/dist/esm/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.d.ts.map +1 -1
  76. package/dist/esm/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.js +72 -12
  77. package/dist/esm/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.js.map +1 -1
  78. package/dist/esm/decorator/lock/lock-observable/lock-observable.decorator.d.ts +3 -2
  79. package/dist/esm/decorator/lock/lock-observable/lock-observable.decorator.d.ts.map +1 -1
  80. package/dist/esm/decorator/lock/lock-observable/lock-observable.decorator.js.map +1 -1
  81. package/dist/esm/decorator/lock/lock-promise/lock-promise.decorator.d.ts +1 -1
  82. package/dist/esm/decorator/lock/lock-promise/lock-promise.decorator.d.ts.map +1 -1
  83. package/dist/esm/decorator/lock/lock-promise/lock-promise.decorator.js.map +1 -1
  84. package/dist/esm/decorator/lock/lock-service-not-injected-message.const.d.ts +2 -0
  85. package/dist/esm/decorator/lock/lock-service-not-injected-message.const.d.ts.map +1 -0
  86. package/dist/esm/decorator/lock/lock-service-not-injected-message.const.js +2 -0
  87. package/dist/esm/decorator/lock/lock-service-not-injected-message.const.js.map +1 -0
  88. package/dist/esm/decorator/lock/lockable.service.d.ts.map +1 -0
  89. package/dist/esm/decorator/lock/lockable.service.js.map +1 -0
  90. package/dist/esm/decorator/lock/resolve-resources.d.ts +3 -0
  91. package/dist/esm/decorator/lock/resolve-resources.d.ts.map +1 -0
  92. package/dist/esm/decorator/lock/resolve-resources.js +9 -0
  93. package/dist/esm/decorator/lock/resolve-resources.js.map +1 -0
  94. package/dist/esm/decorator/lock/resource-separator.const.d.ts +2 -0
  95. package/dist/esm/decorator/lock/resource-separator.const.d.ts.map +1 -0
  96. package/dist/esm/decorator/lock/resource-separator.const.js +2 -0
  97. package/dist/esm/decorator/lock/resource-separator.const.js.map +1 -0
  98. package/dist/esm/decorator/lock/util/execute-lock-observable.util.js +3 -3
  99. package/dist/esm/decorator/lock/util/execute-lock-observable.util.js.map +1 -1
  100. package/dist/esm/decorator/lock/util/execute-lock-promise.util.js +3 -3
  101. package/dist/esm/decorator/lock/util/execute-lock-promise.util.js.map +1 -1
  102. package/dist/esm/decorator/lock/util/run-pre-lock.util.d.ts.map +1 -1
  103. package/dist/esm/decorator/lock/util/run-pre-lock.util.js +5 -11
  104. package/dist/esm/decorator/lock/util/run-pre-lock.util.js.map +1 -1
  105. package/dist/esm/decorator/lock/util/validate-redlock.util.d.ts +1 -1
  106. package/dist/esm/decorator/lock/util/validate-redlock.util.d.ts.map +1 -1
  107. package/dist/esm/decorator/log/log.decorator.d.ts +1 -8
  108. package/dist/esm/decorator/log/log.decorator.d.ts.map +1 -1
  109. package/dist/esm/decorator/log/log.decorator.js +12 -67
  110. package/dist/esm/decorator/log/log.decorator.js.map +1 -1
  111. package/dist/esm/index.d.ts +1 -1
  112. package/dist/esm/index.d.ts.map +1 -1
  113. package/dist/esm/index.js +1 -1
  114. package/dist/esm/index.js.map +1 -1
  115. package/package.json +6 -3
  116. package/dist/cjs/decorator/lock/service/lockable.service.d.ts.map +0 -1
  117. package/dist/cjs/decorator/lock/service/lockable.service.js.map +0 -1
  118. package/dist/cjs/decorator/lock/util/get-lock-service.util.d.ts +0 -3
  119. package/dist/cjs/decorator/lock/util/get-lock-service.util.d.ts.map +0 -1
  120. package/dist/cjs/decorator/lock/util/get-lock-service.util.js +0 -13
  121. package/dist/cjs/decorator/lock/util/get-lock-service.util.js.map +0 -1
  122. package/dist/cjs/decorator/lock/util/inject-lock-service.util.d.ts +0 -4
  123. package/dist/cjs/decorator/lock/util/inject-lock-service.util.d.ts.map +0 -1
  124. package/dist/cjs/decorator/lock/util/inject-lock-service.util.js +0 -9
  125. package/dist/cjs/decorator/lock/util/inject-lock-service.util.js.map +0 -1
  126. package/dist/cjs/decorator/log/type/error-log-function.type.d.ts +0 -2
  127. package/dist/cjs/decorator/log/type/error-log-function.type.d.ts.map +0 -1
  128. package/dist/cjs/decorator/log/type/error-log-function.type.js +0 -3
  129. package/dist/cjs/decorator/log/type/error-log-function.type.js.map +0 -1
  130. package/dist/cjs/decorator/log/type/post-log-function.type.d.ts +0 -2
  131. package/dist/cjs/decorator/log/type/post-log-function.type.d.ts.map +0 -1
  132. package/dist/cjs/decorator/log/type/post-log-function.type.js +0 -3
  133. package/dist/cjs/decorator/log/type/post-log-function.type.js.map +0 -1
  134. package/dist/esm/decorator/lock/service/lockable.service.d.ts.map +0 -1
  135. package/dist/esm/decorator/lock/service/lockable.service.js.map +0 -1
  136. package/dist/esm/decorator/lock/util/get-lock-service.util.d.ts +0 -3
  137. package/dist/esm/decorator/lock/util/get-lock-service.util.d.ts.map +0 -1
  138. package/dist/esm/decorator/lock/util/get-lock-service.util.js +0 -9
  139. package/dist/esm/decorator/lock/util/get-lock-service.util.js.map +0 -1
  140. package/dist/esm/decorator/lock/util/inject-lock-service.util.d.ts +0 -4
  141. package/dist/esm/decorator/lock/util/inject-lock-service.util.d.ts.map +0 -1
  142. package/dist/esm/decorator/lock/util/inject-lock-service.util.js +0 -5
  143. package/dist/esm/decorator/lock/util/inject-lock-service.util.js.map +0 -1
  144. package/dist/esm/decorator/log/type/error-log-function.type.d.ts +0 -2
  145. package/dist/esm/decorator/log/type/error-log-function.type.d.ts.map +0 -1
  146. package/dist/esm/decorator/log/type/error-log-function.type.js +0 -2
  147. package/dist/esm/decorator/log/type/error-log-function.type.js.map +0 -1
  148. package/dist/esm/decorator/log/type/post-log-function.type.d.ts +0 -2
  149. package/dist/esm/decorator/log/type/post-log-function.type.d.ts.map +0 -1
  150. package/dist/esm/decorator/log/type/post-log-function.type.js +0 -2
  151. package/dist/esm/decorator/log/type/post-log-function.type.js.map +0 -1
  152. /package/dist/cjs/decorator/lock/{service/lockable.service.d.ts → lockable.service.d.ts} +0 -0
  153. /package/dist/cjs/decorator/lock/{service/lockable.service.js → lockable.service.js} +0 -0
  154. /package/dist/esm/decorator/lock/{service/lockable.service.d.ts → lockable.service.d.ts} +0 -0
  155. /package/dist/esm/decorator/lock/{service/lockable.service.js → lockable.service.js} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lock-service-not-injected-message.const.js","sourceRoot":"","sources":["../../../../src/decorator/lock/lock-service-not-injected-message.const.ts"],"names":[],"mappings":";;;AAAa,QAAA,iCAAiC,GAC1C,oGAAoG,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lockable.service.d.ts","sourceRoot":"","sources":["../../../../src/decorator/lock/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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lockable.service.js","sourceRoot":"","sources":["../../../../src/decorator/lock/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,3 @@
1
+ import type { PreDecoratorFunction } from '../../type/pre-decorator-function.type';
2
+ export declare const resolveResources: <TArgs extends unknown[]>(preLock: PreDecoratorFunction<TArgs, string[]> | string[], args: TArgs) => string[];
3
+ //# sourceMappingURL=resolve-resources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-resources.d.ts","sourceRoot":"","sources":["../../../../src/decorator/lock/resolve-resources.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAEnF,eAAO,MAAM,gBAAgB,GAAI,KAAK,SAAS,OAAO,EAAE,EACpD,SAAS,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,EACzD,MAAM,KAAK,KACZ,MAAM,EAOR,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveResources = void 0;
4
+ const shared_1 = require("@rnw-community/shared");
5
+ const resolveResources = (preLock, args) => {
6
+ const resources = Array.isArray(preLock) ? preLock : preLock(...args);
7
+ if (!(0, shared_1.isNotEmptyArray)(resources)) {
8
+ throw new Error('Lock key is not defined');
9
+ }
10
+ return resources;
11
+ };
12
+ exports.resolveResources = resolveResources;
13
+ //# sourceMappingURL=resolve-resources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-resources.js","sourceRoot":"","sources":["../../../../src/decorator/lock/resolve-resources.ts"],"names":[],"mappings":";;;AAAA,kDAAwD;AAIjD,MAAM,gBAAgB,GAAG,CAC5B,OAAyD,EACzD,IAAW,EACH,EAAE;IACV,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IACtE,IAAI,CAAC,IAAA,wBAAe,EAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,SAAqB,CAAC;AACjC,CAAC,CAAC;AAVW,QAAA,gBAAgB,oBAU3B"}
@@ -0,0 +1,2 @@
1
+ export declare const RESOURCE_SEPARATOR = "\0";
2
+ //# sourceMappingURL=resource-separator.const.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-separator.const.d.ts","sourceRoot":"","sources":["../../../../src/decorator/lock/resource-separator.const.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,OAAS,CAAC"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RESOURCE_SEPARATOR = void 0;
4
+ exports.RESOURCE_SEPARATOR = '\x00';
5
+ //# sourceMappingURL=resource-separator.const.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-separator.const.js","sourceRoot":"","sources":["../../../../src/decorator/lock/resource-separator.const.ts"],"names":[],"mappings":";;;AAAa,QAAA,kBAAkB,GAAG,MAAM,CAAC"}
@@ -22,11 +22,11 @@ const executeLockObservable = (getLockServiceFn, preLock, duration, retryCount,
22
22
  }
23
23
  const result = originalMethod.apply(this, args);
24
24
  if (!(0, rxjs_1.isObservable)(result)) {
25
- void currentLock.release().catch(() => void 0);
25
+ void currentLock.release().catch(shared_1.emptyFn);
26
26
  throw new Error(`Method ${methodName} does not return an observable`);
27
27
  }
28
28
  return result.pipe((0, rxjs_1.finalize)(() => {
29
- void currentLock.release().catch(() => void 0);
29
+ void currentLock.release().catch(shared_1.emptyFn);
30
30
  }));
31
31
  }), (0, shared_1.isDefined)(catchErrorFn$)
32
32
  ? (0, rxjs_1.catchError)((err) => catchErrorFn$(err))
@@ -1 +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,IAAI,IAAA,kBAAS,EAAC,aAAa,CAAC,EAAE,CAAC;oBAC3B,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC1E,CAAC;gBAED,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;AAhDW,QAAA,qBAAqB,yBAgDhC"}
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,kDAA2D;AAE3D,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,IAAI,IAAA,kBAAS,EAAC,aAAa,CAAC,EAAE,CAAC;oBAC3B,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC1E,CAAC;gBAED,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,gBAAO,CAAC,CAAC;gBAE1C,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,gBAAO,CAAC,CAAC;YAC9C,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;AAhDW,QAAA,qBAAqB,yBAgDhC"}
@@ -22,12 +22,12 @@ const executeLockPromise = (getLockServiceFn, preLock, duration, retryCount, ori
22
22
  const originalResult = originalMethod.apply(this, args);
23
23
  if (!(0, shared_1.isPromise)(originalResult)) {
24
24
  // HINT: https://github.com/mike-marcacci/node-redlock/issues/168
25
- void currentLock.release().catch(() => void 0);
25
+ void currentLock.release().catch(shared_1.emptyFn);
26
26
  throw new Error(`Method ${methodName} does not return a promise`);
27
27
  }
28
28
  return await originalResult.finally(() => {
29
29
  // HINT: https://github.com/mike-marcacci/node-redlock/issues/168
30
- void currentLock.release().catch(() => void 0);
30
+ void currentLock.release().catch(shared_1.emptyFn);
31
31
  });
32
32
  }
33
33
  catch (err) {
@@ -1 +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,IAAI,IAAA,kBAAS,EAAC,YAAY,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1E,CAAC;YAED,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;AA/CW,QAAA,kBAAkB,sBA+C7B"}
1
+ {"version":3,"file":"execute-lock-promise.util.js","sourceRoot":"","sources":["../../../../../src/decorator/lock/util/execute-lock-promise.util.ts"],"names":[],"mappings":";;;AAAA,kDAAsE;AAEtE,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,IAAI,IAAA,kBAAS,EAAC,YAAY,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1E,CAAC;YAED,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,gBAAO,CAAC,CAAC;YAE1C,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,gBAAO,CAAC,CAAC;QAC9C,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;AA/CW,QAAA,kBAAkB,sBA+C7B"}
@@ -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,EAaR,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,EAOR,CAAC"}
@@ -3,17 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.runPreLock = void 0;
4
4
  const shared_1 = require("@rnw-community/shared");
5
5
  const runPreLock = (preLock, ...args) => {
6
- if (Array.isArray(preLock) && (0, shared_1.isNotEmptyArray)(preLock)) {
7
- return preLock;
6
+ const keys = Array.isArray(preLock) ? preLock : preLock(...args);
7
+ if (!(0, shared_1.isNotEmptyArray)(keys)) {
8
+ throw new Error('Lock key is not defined');
8
9
  }
9
- else if ((0, shared_1.isDefined)(preLock) && typeof preLock === 'function') {
10
- const keys = preLock(...args);
11
- if (!(0, shared_1.isNotEmptyArray)(keys)) {
12
- throw new Error('Lock key is not defined');
13
- }
14
- return keys;
15
- }
16
- throw new Error('Lock key is not defined');
10
+ return keys;
17
11
  };
18
12
  exports.runPreLock = runPreLock;
19
13
  //# sourceMappingURL=run-pre-lock.util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-pre-lock.util.js","sourceRoot":"","sources":["../../../../../src/decorator/lock/util/run-pre-lock.util.ts"],"names":[],"mappings":";;;AAAA,kDAAmE;AAI5D,MAAM,UAAU,GAAG,CACtB,OAAyD,EACzD,GAAG,IAAW,EACN,EAAE;IACV,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAA,wBAAe,EAAC,OAAO,CAAC,EAAE,CAAC;QACrD,OAAO,OAAO,CAAC;IACnB,CAAC;SAAM,IAAI,IAAA,kBAAS,EAAC,OAAO,CAAC,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;QAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAA,wBAAe,EAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;AAC/C,CAAC,CAAC;AAhBW,QAAA,UAAU,cAgBrB"}
1
+ {"version":3,"file":"run-pre-lock.util.js","sourceRoot":"","sources":["../../../../../src/decorator/lock/util/run-pre-lock.util.ts"],"names":[],"mappings":";;;AAAA,kDAAwD;AAIjD,MAAM,UAAU,GAAG,CACtB,OAAyD,EACzD,GAAG,IAAW,EACN,EAAE;IACV,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IACjE,IAAI,CAAC,IAAA,wBAAe,EAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAVW,QAAA,UAAU,cAUrB"}
@@ -1,4 +1,4 @@
1
- import type { LockableService } from '../service/lockable.service';
1
+ import type { LockableService } from '../lockable.service';
2
2
  /** @deprecated Used by deprecated `LockPromise`/`LockObservable` decorators. */
3
3
  export declare const validateRedlock: (self: LockableService) => void;
4
4
  //# sourceMappingURL=validate-redlock.util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate-redlock.util.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/lock/util/validate-redlock.util.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEnE,gFAAgF;AAChF,eAAO,MAAM,eAAe,GAAI,MAAM,eAAe,KAAG,IAMvD,CAAC"}
1
+ {"version":3,"file":"validate-redlock.util.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/lock/util/validate-redlock.util.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,gFAAgF;AAChF,eAAO,MAAM,eAAe,GAAI,MAAM,eAAe,KAAG,IAMvD,CAAC"}
@@ -1,9 +1,2 @@
1
- import { type Observable } from 'rxjs';
2
- import { type AnyFn, type MethodDecoratorType } from '@rnw-community/shared';
3
- import type { ErrorLogFunction } from './type/error-log-function.type';
4
- import type { PostLogFunction } from './type/post-log-function.type';
5
- import type { PreDecoratorFunction } from '../../type/pre-decorator-function.type';
6
- type GetResultType<T> = T extends Promise<infer U> ? U : T extends Observable<infer U> ? U : T;
7
- export declare const Log: <K extends AnyFn, TResult extends ReturnType<K>, TArgs extends Parameters<K>>(preLog: PreDecoratorFunction<TArgs> | string, postLog?: PostLogFunction<GetResultType<TResult>, TArgs> | string, errorLog?: ErrorLogFunction<TArgs> | string) => MethodDecoratorType<K>;
8
- export {};
1
+ export declare const Log: <K extends import("@rnw-community/shared").AnyFn, TResult extends import("@rnw-community/log-decorator").GetResultType<ReturnType<K>>, TArgs extends Parameters<K>>(preLog?: import("@rnw-community/log-decorator").PreLogInputType<TArgs>, postLog?: import("@rnw-community/log-decorator").PostLogInputType<TArgs, TResult>, errorLog?: import("@rnw-community/log-decorator").ErrorLogInputType<TArgs>) => import("@rnw-community/shared").MethodDecoratorType<K>;
9
2
  //# sourceMappingURL=log.decorator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"log.decorator.d.ts","sourceRoot":"","sources":["../../../../src/decorator/log/log.decorator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAA6C,MAAM,MAAM,CAAC;AAElF,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,mBAAmB,EAA0C,MAAM,uBAAuB,CAAC;AAErH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAGnF,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE/F,eAAO,MAAM,GAAG,GACX,CAAC,SAAS,KAAK,EAAE,OAAO,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,UAAU,CAAC,CAAC,CAAC,EACpE,QAAQ,oBAAoB,CAAC,KAAK,CAAC,GAAG,MAAM,EAC5C,UAAU,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM,EACjE,WAAW,gBAAgB,CAAC,KAAK,CAAC,GAAG,MAAM,KAC5C,mBAAmB,CAAC,CAAC,CAmFvB,CAAC"}
1
+ {"version":3,"file":"log.decorator.d.ts","sourceRoot":"","sources":["../../../../src/decorator/log/log.decorator.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,GAAG,scAAsD,CAAC"}
@@ -2,75 +2,19 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Log = void 0;
4
4
  const common_1 = require("@nestjs/common");
5
- const rxjs_1 = require("rxjs");
5
+ const log_decorator_1 = require("@rnw-community/log-decorator");
6
6
  const shared_1 = require("@rnw-community/shared");
7
- const Log = (preLog, postLog, errorLog) => (target, propertyKey, descriptor) => {
8
- const logContext = `${target.constructor.name}::${String(propertyKey)}`;
9
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
10
- const originalMethod = descriptor.value;
11
- // eslint-disable-next-line max-statements,func-names
12
- descriptor.value = function (...args) {
13
- const runPreLog = () => {
14
- if ((0, shared_1.isNotEmptyString)(preLog)) {
15
- common_1.Logger.log(preLog, logContext);
16
- }
17
- else if ((0, shared_1.isDefined)(preLog)) {
18
- common_1.Logger.log(preLog(...args), logContext);
19
- }
20
- };
21
- const runPostLog = (res) => {
22
- if ((0, shared_1.isNotEmptyString)(postLog)) {
23
- common_1.Logger.debug(postLog, logContext);
24
- }
25
- else if ((0, shared_1.isDefined)(postLog)) {
26
- common_1.Logger.debug(postLog(res, ...args), logContext);
27
- }
28
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
29
- return res;
30
- };
31
- const runErrorLog = (error) => {
32
- if (!(0, shared_1.isDefined)(errorLog)) {
33
- return;
34
- }
35
- const message = (0, shared_1.isNotEmptyString)(errorLog) ? errorLog : errorLog(error, ...args);
36
- if (error instanceof Error) {
37
- common_1.Logger.error(message, { err: error }, logContext);
38
- }
39
- else {
40
- common_1.Logger.error(message, logContext);
41
- }
42
- };
43
- try {
44
- runPreLog();
45
- // @ts-expect-error We need this to handle generic methods correctly
46
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
47
- const result = originalMethod.apply(this, args);
48
- if ((0, shared_1.isDefined)(postLog)) {
49
- if ((0, rxjs_1.isObservable)(result)) {
50
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
51
- return result.pipe((0, rxjs_1.tap)(runPostLog), (0, rxjs_1.catchError)((error) => {
52
- runErrorLog(error);
53
- return (0, rxjs_1.throwError)(() => error);
54
- }));
55
- }
56
- else if ((0, shared_1.isPromise)(result)) {
57
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
58
- return result.then(runPostLog).catch((error) => {
59
- runErrorLog(error);
60
- throw error;
61
- });
62
- }
63
- runPostLog(result);
64
- }
65
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
66
- return result;
7
+ const nestLogTransport = {
8
+ log: (message, logContext) => void common_1.Logger.log(message, logContext),
9
+ debug: (message, logContext) => void common_1.Logger.debug(message, logContext),
10
+ error: (message, error, logContext) => {
11
+ if ((0, shared_1.isError)(error)) {
12
+ common_1.Logger.error(message, { err: error }, logContext);
67
13
  }
68
- catch (error) {
69
- runErrorLog(error);
70
- throw error;
14
+ else {
15
+ common_1.Logger.error(message, logContext);
71
16
  }
72
- };
73
- return descriptor;
17
+ },
74
18
  };
75
- exports.Log = Log;
19
+ exports.Log = (0, log_decorator_1.createLogDecorator)({ transport: nestLogTransport });
76
20
  //# sourceMappingURL=log.decorator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"log.decorator.js","sourceRoot":"","sources":["../../../../src/decorator/log/log.decorator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"log.decorator.js","sourceRoot":"","sources":["../../../../src/decorator/log/log.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AAExC,gEAA8F;AAC9F,kDAAgD;AAEhD,MAAM,gBAAgB,GAA0B;IAC5C,GAAG,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,KAAK,eAAM,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC;IAClE,KAAK,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,KAAK,eAAM,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC;IACtE,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;QAClC,IAAI,IAAA,gBAAO,EAAC,KAAK,CAAC,EAAE,CAAC;YACjB,eAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,UAAU,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACJ,eAAM,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACtC,CAAC;IACL,CAAC;CACJ,CAAC;AAEW,QAAA,GAAG,GAAG,IAAA,kCAAkB,EAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC"}
@@ -2,7 +2,7 @@ export { Log } from './decorator/log/log.decorator';
2
2
  export { HistogramMetric } from './decorator/histogram-metric/histogram-metric.decorator';
3
3
  export { LockPromise } from './decorator/lock/lock-promise/lock-promise.decorator';
4
4
  export { LockObservable } from './decorator/lock/lock-observable/lock-observable.decorator';
5
- export { LockableService } from './decorator/lock/service/lockable.service';
5
+ export { LockableService } from './decorator/lock/lockable.service';
6
6
  export { createPromiseLockDecorators } from './decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators';
7
7
  export { createObservableLockDecorators } from './decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators';
8
8
  export type { LockHandle } from './decorator/lock/interface/lock-handle.interface';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,yDAAyD,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,MAAM,sDAAsD,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,4DAA4D,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,gFAAgF,CAAC;AAC7H,OAAO,EAAE,8BAA8B,EAAE,MAAM,sFAAsF,CAAC;AAEtI,YAAY,EAAE,UAAU,EAAE,MAAM,kDAAkD,CAAC;AACnF,YAAY,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AAC9F,YAAY,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,yDAAyD,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,MAAM,sDAAsD,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,4DAA4D,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,gFAAgF,CAAC;AAC7H,OAAO,EAAE,8BAA8B,EAAE,MAAM,sFAAsF,CAAC;AAEtI,YAAY,EAAE,UAAU,EAAE,MAAM,kDAAkD,CAAC;AACnF,YAAY,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AAC9F,YAAY,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC"}
package/dist/cjs/index.js CHANGED
@@ -9,7 +9,7 @@ var lock_promise_decorator_1 = require("./decorator/lock/lock-promise/lock-promi
9
9
  Object.defineProperty(exports, "LockPromise", { enumerable: true, get: function () { return lock_promise_decorator_1.LockPromise; } });
10
10
  var lock_observable_decorator_1 = require("./decorator/lock/lock-observable/lock-observable.decorator");
11
11
  Object.defineProperty(exports, "LockObservable", { enumerable: true, get: function () { return lock_observable_decorator_1.LockObservable; } });
12
- var lockable_service_1 = require("./decorator/lock/service/lockable.service");
12
+ var lockable_service_1 = require("./decorator/lock/lockable.service");
13
13
  Object.defineProperty(exports, "LockableService", { enumerable: true, get: function () { return lockable_service_1.LockableService; } });
14
14
  var create_promise_lock_decorators_1 = require("./decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators");
15
15
  Object.defineProperty(exports, "createPromiseLockDecorators", { enumerable: true, get: function () { return create_promise_lock_decorators_1.createPromiseLockDecorators; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,+DAAoD;AAA3C,oGAAA,GAAG,OAAA;AACZ,sGAA0F;AAAjF,6HAAA,eAAe,OAAA;AACxB,+FAAmF;AAA1E,qHAAA,WAAW,OAAA;AACpB,wGAA4F;AAAnF,2HAAA,cAAc,OAAA;AACvB,8EAA4E;AAAnE,mHAAA,eAAe,OAAA;AACxB,iIAA6H;AAApH,6IAAA,2BAA2B,OAAA;AACpC,0IAAsI;AAA7H,mJAAA,8BAA8B,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,+DAAoD;AAA3C,oGAAA,GAAG,OAAA;AACZ,sGAA0F;AAAjF,6HAAA,eAAe,OAAA;AACxB,+FAAmF;AAA1E,qHAAA,WAAW,OAAA;AACpB,wGAA4F;AAAnF,2HAAA,cAAc,OAAA;AACvB,sEAAoE;AAA3D,mHAAA,eAAe,OAAA;AACxB,iIAA6H;AAApH,6IAAA,2BAA2B,OAAA;AACpC,0IAAsI;AAA7H,mJAAA,8BAA8B,OAAA"}
@@ -0,0 +1,14 @@
1
+ import type { Registry } from 'prom-client';
2
+ interface HistogramMetricTrackedConfig {
3
+ readonly buckets?: readonly number[];
4
+ readonly labelNames?: readonly string[];
5
+ }
6
+ interface HistogramMetricTrackingApi {
7
+ readonly find: (registries: readonly Registry[], metricName: string) => HistogramMetricTrackedConfig | undefined;
8
+ readonly record: (registries: readonly Registry[], metricName: string, config: HistogramMetricTrackedConfig) => void;
9
+ readonly configsMatch: (previous: HistogramMetricTrackedConfig, next: HistogramMetricTrackedConfig) => boolean;
10
+ readonly reset: (registry: Registry) => void;
11
+ }
12
+ export declare const histogramMetricTracking: HistogramMetricTrackingApi;
13
+ export {};
14
+ //# sourceMappingURL=histogram-metric-tracking.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"histogram-metric-tracking.d.ts","sourceRoot":"","sources":["../../../../src/decorator/histogram-metric/histogram-metric-tracking.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,UAAU,4BAA4B;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAED,UAAU,0BAA0B;IAChC,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,SAAS,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,KAAK,4BAA4B,GAAG,SAAS,CAAC;IACjH,QAAQ,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,4BAA4B,KAAK,IAAI,CAAC;IACrH,QAAQ,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,4BAA4B,EAAE,IAAI,EAAE,4BAA4B,KAAK,OAAO,CAAC;IAC/G,QAAQ,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;CAChD;AAkCD,eAAO,MAAM,uBAAuB,EAAE,0BA2BrC,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { isDefined } from '@rnw-community/shared';
2
+ const registryMap = new WeakMap();
3
+ const bucketsEqual = (first, second) => {
4
+ if (!isDefined(first) && !isDefined(second)) {
5
+ return true;
6
+ }
7
+ if (!isDefined(first) || !isDefined(second)) {
8
+ return false;
9
+ }
10
+ if (first.length !== second.length) {
11
+ return false;
12
+ }
13
+ return first.every((value, index) => value === second[index]);
14
+ };
15
+ const labelNamesEqual = (first, second) => {
16
+ if (!isDefined(first) && !isDefined(second)) {
17
+ return true;
18
+ }
19
+ if (!isDefined(first) || !isDefined(second)) {
20
+ return false;
21
+ }
22
+ if (first.length !== second.length) {
23
+ return false;
24
+ }
25
+ const sortedFirst = [...first].sort((left, right) => left.localeCompare(right));
26
+ const sortedSecond = [...second].sort((left, right) => left.localeCompare(right));
27
+ return sortedFirst.every((value, index) => value === sortedSecond[index]);
28
+ };
29
+ export const histogramMetricTracking = {
30
+ find: (registries, metricName) => {
31
+ for (const registry of registries) {
32
+ const perRegistry = registryMap.get(registry);
33
+ const hit = perRegistry?.get(metricName);
34
+ if (isDefined(hit)) {
35
+ return hit;
36
+ }
37
+ }
38
+ return void 0;
39
+ },
40
+ record: (registries, metricName, config) => {
41
+ for (const registry of registries) {
42
+ let perRegistry = registryMap.get(registry);
43
+ if (!isDefined(perRegistry)) {
44
+ perRegistry = new Map();
45
+ registryMap.set(registry, perRegistry);
46
+ }
47
+ perRegistry.set(metricName, config);
48
+ }
49
+ },
50
+ configsMatch: (previous, next) => bucketsEqual(previous.buckets, next.buckets) && labelNamesEqual(previous.labelNames, next.labelNames),
51
+ reset: (registry) => {
52
+ registryMap.delete(registry);
53
+ },
54
+ };
55
+ //# sourceMappingURL=histogram-metric-tracking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"histogram-metric-tracking.js","sourceRoot":"","sources":["../../../../src/decorator/histogram-metric/histogram-metric-tracking.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
1
  import { type HistogramConfiguration } from 'prom-client';
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>;
2
+ type HistogramMetricConfig<M extends string, TArgs extends readonly unknown[]> = Omit<HistogramConfiguration<M>, 'name'> & {
3
+ readonly labels?: (args: TArgs) => Readonly<Record<string, string>>;
4
+ };
5
+ export declare const HistogramMetric: <M extends string, TArgs extends readonly unknown[] = readonly unknown[]>(metricName: string, configuration?: HistogramMetricConfig<M, TArgs>) => import("@rnw-community/shared").MethodDecoratorType<import("@rnw-community/shared").AnyFn>;
6
+ export {};
4
7
  //# 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;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"}
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,EAA6C,MAAM,aAAa,CAAC;AAWhH,KAAK,qBAAqB,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,SAAS,SAAS,OAAO,EAAE,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG;IACvH,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACvE,CAAC;AAwFF,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,MAAM,EAAE,KAAK,SAAS,SAAS,OAAO,EAAE,GAAG,SAAS,OAAO,EAAE,EACnG,YAAY,MAAM,EAClB,gBAAgB,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,+FAOlD,CAAC"}
@@ -1,28 +1,65 @@
1
1
  import { Histogram, register } from 'prom-client';
2
+ import { createHistogramMetricDecorator } from '@rnw-community/histogram-metric-decorator';
2
3
  import { isDefined } from '@rnw-community/shared';
3
- export const HistogramMetric = (metricName, configuration) => (_target, _propertyKey, descriptor) => {
4
- let histogram = register.getSingleMetric(metricName);
5
- if (!isDefined(histogram)) {
6
- histogram = new Histogram({
7
- help: metricName,
8
- ...configuration,
9
- name: metricName,
10
- });
11
- }
12
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
13
- const originalMethod = descriptor.value;
14
- // eslint-disable-next-line func-names
15
- descriptor.value = function (...args) {
16
- const endHistogram = histogram.startTimer();
17
- try {
18
- // @ts-expect-error We need this to handle generic methods correctly
19
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
20
- return originalMethod.apply(this, args);
4
+ import { histogramMetricTracking } from './histogram-metric-tracking';
5
+ const MS_PER_SECOND = 1000;
6
+ const throwMismatch = (metricName, previous, next) => {
7
+ throw new Error(`HistogramMetric "${metricName}" already registered with different buckets/labelNames. ` +
8
+ `Existing: ${JSON.stringify(previous)}. Requested: ${JSON.stringify(next)}. ` +
9
+ `Use a unique name or align configurations.`);
10
+ };
11
+ const resolveExistingHistogram = (metricName, configuration) => {
12
+ const registries = configuration?.registers ?? [register];
13
+ for (const item of registries) {
14
+ const existing = item.getSingleMetric(metricName);
15
+ if (existing instanceof Histogram) {
16
+ return existing;
21
17
  }
22
- finally {
23
- endHistogram();
18
+ }
19
+ return void 0;
20
+ };
21
+ const createAndRecord = (metricName, configuration, registries, next) => {
22
+ const created = new Histogram({
23
+ help: metricName,
24
+ ...configuration,
25
+ name: metricName,
26
+ });
27
+ histogramMetricTracking.record(registries, metricName, next);
28
+ return created;
29
+ };
30
+ const resolveHistogram = (metricName, configuration) => {
31
+ const registries = (configuration?.registers ?? [register]);
32
+ const next = { buckets: configuration?.buckets, labelNames: configuration?.labelNames };
33
+ const prior = histogramMetricTracking.find(registries, metricName);
34
+ if (isDefined(prior) && !histogramMetricTracking.configsMatch(prior, next)) {
35
+ throwMismatch(metricName, prior, next);
36
+ }
37
+ const existing = resolveExistingHistogram(metricName, configuration);
38
+ if (isDefined(existing)) {
39
+ if (!isDefined(prior)) {
40
+ histogramMetricTracking.record(registries, metricName, next);
24
41
  }
42
+ return existing;
43
+ }
44
+ return createAndRecord(metricName, configuration, registries, next);
45
+ };
46
+ const createPromClientTransport = (metricName, configuration) => {
47
+ const histogram = resolveHistogram(metricName, configuration);
48
+ return {
49
+ observe: (_name, durationMs, labelValues) => {
50
+ const seconds = durationMs / MS_PER_SECOND;
51
+ if (isDefined(labelValues)) {
52
+ histogram.observe(labelValues, seconds);
53
+ return;
54
+ }
55
+ histogram.observe(seconds);
56
+ },
25
57
  };
26
- return descriptor;
58
+ };
59
+ export const HistogramMetric = (metricName, configuration) => {
60
+ const { labels, ...promConfig } = configuration ?? {};
61
+ return createHistogramMetricDecorator({
62
+ transport: createPromClientTransport(metricName, promConfig),
63
+ })({ name: metricName, labels: labels });
27
64
  };
28
65
  //# sourceMappingURL=histogram-metric.decorator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"histogram-metric.decorator.js","sourceRoot":"","sources":["../../../../src/decorator/histogram-metric/histogram-metric.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA+B,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE/E,OAAO,EAAwC,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGxF,MAAM,CAAC,MAAM,eAAe,GACxB,CACQ,UAAkB,EAClB,aAAuD,EACjC,EAAE,CAC5B,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE;IAClC,IAAI,SAAS,GAAG,QAAQ,CAAC,eAAe,CAAC,UAAU,CAA6B,CAAC;IAEjF,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;QACxB,SAAS,GAAG,IAAI,SAAS,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"}
1
+ {"version":3,"file":"histogram-metric.decorator.js","sourceRoot":"","sources":["../../../../src/decorator/histogram-metric/histogram-metric.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAgE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEhH,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAItE,MAAM,aAAa,GAAG,IAAI,CAAC;AAM3B,MAAM,aAAa,GAAG,CAClB,UAAkB,EAClB,QAA2F,EAC3F,IAAuF,EAClF,EAAE;IACP,MAAM,IAAI,KAAK,CACX,oBAAoB,UAAU,0DAA0D;QACpF,aAAa,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI;QAC7E,4CAA4C,CACnD,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAC7B,UAAkB,EAClB,aAAuD,EAC/B,EAAE;IAC1B,MAAM,UAAU,GAAG,aAAa,EAAE,SAAS,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE1D,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAElD,IAAI,QAAQ,YAAY,SAAS,EAAE,CAAC;YAChC,OAAO,QAAwB,CAAC;QACpC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CACpB,UAAkB,EAClB,aAAkE,EAClE,UAA+B,EAC/B,IAAuF,EAC3E,EAAE;IACd,MAAM,OAAO,GAAG,IAAI,SAAS,CAAC;QAC1B,IAAI,EAAE,UAAU;QAChB,GAAG,aAAa;QAChB,IAAI,EAAE,UAAU;KACnB,CAAC,CAAC;IACH,uBAAuB,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAE7D,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CACrB,UAAkB,EAClB,aAAuD,EAC3C,EAAE;IACd,MAAM,UAAU,GAAG,CAAC,aAAa,EAAE,SAAS,IAAI,CAAC,QAAQ,CAAC,CAAwB,CAAC;IACnF,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;IACxF,MAAM,KAAK,GAAG,uBAAuB,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACnE,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;QACzE,aAAa,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IACD,MAAM,QAAQ,GAAG,wBAAwB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IACrE,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,uBAAuB,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QACjE,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,OAAO,eAAe,CAAC,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;AACxE,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAC9B,UAAkB,EAClB,aAAuD,EAC5B,EAAE;IAC7B,MAAM,SAAS,GAAG,gBAAgB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAE9D,OAAO;QACH,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE;YACxC,MAAM,OAAO,GAAG,UAAU,GAAG,aAAa,CAAC;YAC3C,IAAI,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;gBACzB,SAAS,CAAC,OAAO,CAAC,WAA6B,EAAE,OAAO,CAAC,CAAC;gBAE1D,OAAO;YACX,CAAC;YACD,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;KACJ,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC3B,UAAkB,EAClB,aAA+C,EACjD,EAAE;IACA,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,aAAa,IAAI,EAAE,CAAC;IAEtD,OAAO,8BAA8B,CAAC;QAClC,SAAS,EAAE,yBAAyB,CAAC,UAAU,EAAE,UAAqD,CAAC;KAC1G,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAiE,EAAE,CAAC,CAAC;AACxG,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type LockStoreInterface } from '@rnw-community/lock-decorator';
2
+ import type { LockServiceInterface } from './interface/lock-service.interface';
3
+ export declare const createLockServiceStore: (lockService: LockServiceInterface, duration: number) => LockStoreInterface;
4
+ //# sourceMappingURL=create-lock-service-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-lock-service-store.d.ts","sourceRoot":"","sources":["../../../../src/decorator/lock/create-lock-service-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,KAAK,kBAAkB,EAC1B,MAAM,+BAA+B,CAAC;AAKvC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,eAAO,MAAM,sBAAsB,GAAI,aAAa,oBAAoB,EAAE,UAAU,MAAM,KAAG,kBAqB3F,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { LockBusyError, } from '@rnw-community/lock-decorator';
2
+ import { isDefined } from '@rnw-community/shared';
3
+ import { RESOURCE_SEPARATOR } from './resource-separator.const';
4
+ export const createLockServiceStore = (lockService, duration) => ({
5
+ acquire: async (key, mode, _options) => {
6
+ const resources = key.split(RESOURCE_SEPARATOR);
7
+ if (mode === 'exclusive') {
8
+ const handle = await lockService.tryAcquire(resources, duration);
9
+ if (!isDefined(handle)) {
10
+ throw new LockBusyError(key);
11
+ }
12
+ return { key, mode, release: () => handle.release() };
13
+ }
14
+ const handle = await lockService.acquire(resources, duration);
15
+ return { key, mode, release: () => handle.release() };
16
+ },
17
+ });
18
+ //# sourceMappingURL=create-lock-service-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-lock-service-store.js","sourceRoot":"","sources":["../../../../src/decorator/lock/create-lock-service-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,aAAa,GAIhB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAIhE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,WAAiC,EAAE,QAAgB,EAAsB,EAAE,CAAC,CAAC;IAChH,OAAO,EAAE,KAAK,EACV,GAAW,EACX,IAAkB,EAClB,QAAkC,EACN,EAAE;QAC9B,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAEhD,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACjE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrB,MAAM,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC;YAED,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QAC1D,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAE9D,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;IAC1D,CAAC;CACJ,CAAC,CAAC"}
@@ -1,8 +1,13 @@
1
+ import { type Observable } from 'rxjs';
1
2
  import type { PreDecoratorFunction } from '../../../type/pre-decorator-function.type';
2
3
  import type { LockServiceInterface } from '../interface/lock-service.interface';
3
- import type { AbstractConstructor, AnyFn, MethodDecoratorType } from '@rnw-community/shared';
4
+ import type { AbstractConstructor, MethodDecoratorType } from '@rnw-community/shared';
5
+ type ObservableReturningFn = (...args: readonly any[]) => Observable<unknown>;
6
+ type ObservableRecoveryType<TResult> = TResult extends Observable<infer TValue> ? TValue | Observable<TValue> : never;
7
+ type ObservableRecoveryFnType<K extends ObservableReturningFn> = (error: unknown) => ObservableRecoveryType<ReturnType<K>>;
4
8
  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>;
9
+ SequentialLock$: <K extends ObservableReturningFn, TArgs extends Parameters<K>>(preLock: PreDecoratorFunction<TArgs, string[]> | string[], catchErrorFn$?: ObservableRecoveryFnType<K>, duration?: number) => MethodDecoratorType<K>;
10
+ ExclusiveLock$: <K extends ObservableReturningFn, TArgs extends Parameters<K>>(preLock: PreDecoratorFunction<TArgs, string[]> | string[], catchErrorFn$?: ObservableRecoveryFnType<K>, duration?: number) => MethodDecoratorType<K>;
7
11
  };
12
+ export {};
8
13
  //# sourceMappingURL=create-observable-lock-decorators.d.ts.map
@@ -1 +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"}
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":"AACA,OAAO,EAAS,KAAK,UAAU,EAAmD,MAAM,MAAM,CAAC;AAU/F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAEhF,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAGtF,KAAK,qBAAqB,GAAG,CAAC,GAAG,IAAI,EAAE,SAAS,GAAG,EAAE,KAAK,UAAU,CAAC,OAAO,CAAC,CAAC;AAE9E,KAAK,sBAAsB,CAAC,OAAO,IAAI,OAAO,SAAS,UAAU,CAAC,MAAM,MAAM,CAAC,GAAG,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;AACtH,KAAK,wBAAwB,CAAC,CAAC,SAAS,qBAAqB,IAAI,CAAC,KAAK,EAAE,OAAO,KAAK,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AA0C3H,eAAO,MAAM,8BAA8B,GACvC,cAAc,mBAAmB,CAAC,oBAAoB,CAAC,EACvD,iBAAiB,MAAM;sBAMlB,CAAC,SAAS,qBAAqB,EAAE,KAAK,SAAS,UAAU,CAAC,CAAC,CAAC,WAChD,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,kBACzC,wBAAwB,CAAC,CAAC,CAAC,aAChC,MAAM,KAClB,mBAAmB,CAAC,CAAC,CAAC;qBAJxB,CAAC,SAAS,qBAAqB,EAAE,KAAK,SAAS,UAAU,CAAC,CAAC,CAAC,WAChD,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,kBACzC,wBAAwB,CAAC,CAAC,CAAC,aAChC,MAAM,KAClB,mBAAmB,CAAC,CAAC,CAAC;CAoDhC,CAAC"}