@rnw-community/nestjs-enterprise 1.14.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/decorator/histogram-metric/histogram-metric-tracking.d.ts +14 -0
- package/dist/cjs/decorator/histogram-metric/histogram-metric-tracking.d.ts.map +1 -0
- package/dist/cjs/decorator/histogram-metric/histogram-metric-tracking.js +58 -0
- package/dist/cjs/decorator/histogram-metric/histogram-metric-tracking.js.map +1 -0
- package/dist/cjs/decorator/histogram-metric/histogram-metric.decorator.d.ts +5 -2
- package/dist/cjs/decorator/histogram-metric/histogram-metric.decorator.d.ts.map +1 -1
- package/dist/cjs/decorator/histogram-metric/histogram-metric.decorator.js +58 -21
- package/dist/cjs/decorator/histogram-metric/histogram-metric.decorator.js.map +1 -1
- package/dist/cjs/decorator/lock/create-lock-service-store.d.ts +4 -0
- package/dist/cjs/decorator/lock/create-lock-service-store.d.ts.map +1 -0
- package/dist/cjs/decorator/lock/create-lock-service-store.js +22 -0
- package/dist/cjs/decorator/lock/create-lock-service-store.js.map +1 -0
- package/dist/cjs/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.d.ts +8 -3
- package/dist/cjs/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.d.ts.map +1 -1
- package/dist/cjs/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.js +75 -12
- package/dist/cjs/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.js.map +1 -1
- package/dist/cjs/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.d.ts +6 -3
- package/dist/cjs/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.d.ts.map +1 -1
- package/dist/cjs/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.js +72 -12
- package/dist/cjs/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.js.map +1 -1
- package/dist/cjs/decorator/lock/lock-observable/lock-observable.decorator.d.ts +3 -2
- package/dist/cjs/decorator/lock/lock-observable/lock-observable.decorator.d.ts.map +1 -1
- package/dist/cjs/decorator/lock/lock-observable/lock-observable.decorator.js.map +1 -1
- package/dist/cjs/decorator/lock/lock-promise/lock-promise.decorator.d.ts +1 -1
- package/dist/cjs/decorator/lock/lock-promise/lock-promise.decorator.d.ts.map +1 -1
- package/dist/cjs/decorator/lock/lock-promise/lock-promise.decorator.js.map +1 -1
- package/dist/cjs/decorator/lock/lock-service-not-injected-message.const.d.ts +2 -0
- package/dist/cjs/decorator/lock/lock-service-not-injected-message.const.d.ts.map +1 -0
- package/dist/cjs/decorator/lock/lock-service-not-injected-message.const.js +5 -0
- package/dist/cjs/decorator/lock/lock-service-not-injected-message.const.js.map +1 -0
- package/dist/cjs/decorator/lock/lockable.service.d.ts.map +1 -0
- package/dist/cjs/decorator/lock/lockable.service.js.map +1 -0
- package/dist/cjs/decorator/lock/resolve-resources.d.ts +3 -0
- package/dist/cjs/decorator/lock/resolve-resources.d.ts.map +1 -0
- package/dist/cjs/decorator/lock/resolve-resources.js +13 -0
- package/dist/cjs/decorator/lock/resolve-resources.js.map +1 -0
- package/dist/cjs/decorator/lock/resource-separator.const.d.ts +2 -0
- package/dist/cjs/decorator/lock/resource-separator.const.d.ts.map +1 -0
- package/dist/cjs/decorator/lock/resource-separator.const.js +5 -0
- package/dist/cjs/decorator/lock/resource-separator.const.js.map +1 -0
- package/dist/cjs/decorator/lock/util/execute-lock-observable.util.js +2 -2
- package/dist/cjs/decorator/lock/util/execute-lock-observable.util.js.map +1 -1
- package/dist/cjs/decorator/lock/util/execute-lock-promise.util.js +2 -2
- package/dist/cjs/decorator/lock/util/execute-lock-promise.util.js.map +1 -1
- package/dist/cjs/decorator/lock/util/run-pre-lock.util.d.ts.map +1 -1
- package/dist/cjs/decorator/lock/util/run-pre-lock.util.js +4 -10
- package/dist/cjs/decorator/lock/util/run-pre-lock.util.js.map +1 -1
- package/dist/cjs/decorator/lock/util/validate-redlock.util.d.ts +1 -1
- package/dist/cjs/decorator/lock/util/validate-redlock.util.d.ts.map +1 -1
- package/dist/cjs/decorator/log/log.decorator.d.ts +1 -8
- package/dist/cjs/decorator/log/log.decorator.d.ts.map +1 -1
- package/dist/cjs/decorator/log/log.decorator.js +11 -69
- package/dist/cjs/decorator/log/log.decorator.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/decorator/histogram-metric/histogram-metric-tracking.d.ts +14 -0
- package/dist/esm/decorator/histogram-metric/histogram-metric-tracking.d.ts.map +1 -0
- package/dist/esm/decorator/histogram-metric/histogram-metric-tracking.js +55 -0
- package/dist/esm/decorator/histogram-metric/histogram-metric-tracking.js.map +1 -0
- package/dist/esm/decorator/histogram-metric/histogram-metric.decorator.d.ts +5 -2
- package/dist/esm/decorator/histogram-metric/histogram-metric.decorator.d.ts.map +1 -1
- package/dist/esm/decorator/histogram-metric/histogram-metric.decorator.js +58 -21
- package/dist/esm/decorator/histogram-metric/histogram-metric.decorator.js.map +1 -1
- package/dist/esm/decorator/lock/create-lock-service-store.d.ts +4 -0
- package/dist/esm/decorator/lock/create-lock-service-store.d.ts.map +1 -0
- package/dist/esm/decorator/lock/create-lock-service-store.js +18 -0
- package/dist/esm/decorator/lock/create-lock-service-store.js.map +1 -0
- package/dist/esm/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.d.ts +8 -3
- package/dist/esm/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.d.ts.map +1 -1
- package/dist/esm/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.js +75 -12
- package/dist/esm/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.js.map +1 -1
- package/dist/esm/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.d.ts +6 -3
- package/dist/esm/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.d.ts.map +1 -1
- package/dist/esm/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.js +72 -12
- package/dist/esm/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.js.map +1 -1
- package/dist/esm/decorator/lock/lock-observable/lock-observable.decorator.d.ts +3 -2
- package/dist/esm/decorator/lock/lock-observable/lock-observable.decorator.d.ts.map +1 -1
- package/dist/esm/decorator/lock/lock-observable/lock-observable.decorator.js.map +1 -1
- package/dist/esm/decorator/lock/lock-promise/lock-promise.decorator.d.ts +1 -1
- package/dist/esm/decorator/lock/lock-promise/lock-promise.decorator.d.ts.map +1 -1
- package/dist/esm/decorator/lock/lock-promise/lock-promise.decorator.js.map +1 -1
- package/dist/esm/decorator/lock/lock-service-not-injected-message.const.d.ts +2 -0
- package/dist/esm/decorator/lock/lock-service-not-injected-message.const.d.ts.map +1 -0
- package/dist/esm/decorator/lock/lock-service-not-injected-message.const.js +2 -0
- package/dist/esm/decorator/lock/lock-service-not-injected-message.const.js.map +1 -0
- package/dist/esm/decorator/lock/lockable.service.d.ts.map +1 -0
- package/dist/esm/decorator/lock/lockable.service.js.map +1 -0
- package/dist/esm/decorator/lock/resolve-resources.d.ts +3 -0
- package/dist/esm/decorator/lock/resolve-resources.d.ts.map +1 -0
- package/dist/esm/decorator/lock/resolve-resources.js +9 -0
- package/dist/esm/decorator/lock/resolve-resources.js.map +1 -0
- package/dist/esm/decorator/lock/resource-separator.const.d.ts +2 -0
- package/dist/esm/decorator/lock/resource-separator.const.d.ts.map +1 -0
- package/dist/esm/decorator/lock/resource-separator.const.js +2 -0
- package/dist/esm/decorator/lock/resource-separator.const.js.map +1 -0
- package/dist/esm/decorator/lock/util/execute-lock-observable.util.js +3 -3
- package/dist/esm/decorator/lock/util/execute-lock-observable.util.js.map +1 -1
- package/dist/esm/decorator/lock/util/execute-lock-promise.util.js +3 -3
- package/dist/esm/decorator/lock/util/execute-lock-promise.util.js.map +1 -1
- package/dist/esm/decorator/lock/util/run-pre-lock.util.d.ts.map +1 -1
- package/dist/esm/decorator/lock/util/run-pre-lock.util.js +5 -11
- package/dist/esm/decorator/lock/util/run-pre-lock.util.js.map +1 -1
- package/dist/esm/decorator/lock/util/validate-redlock.util.d.ts +1 -1
- package/dist/esm/decorator/lock/util/validate-redlock.util.d.ts.map +1 -1
- package/dist/esm/decorator/log/log.decorator.d.ts +1 -8
- package/dist/esm/decorator/log/log.decorator.d.ts.map +1 -1
- package/dist/esm/decorator/log/log.decorator.js +12 -69
- package/dist/esm/decorator/log/log.decorator.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/package.json +6 -3
- package/dist/cjs/decorator/lock/service/lockable.service.d.ts.map +0 -1
- package/dist/cjs/decorator/lock/service/lockable.service.js.map +0 -1
- package/dist/cjs/decorator/lock/util/get-lock-service.util.d.ts +0 -3
- package/dist/cjs/decorator/lock/util/get-lock-service.util.d.ts.map +0 -1
- package/dist/cjs/decorator/lock/util/get-lock-service.util.js +0 -13
- package/dist/cjs/decorator/lock/util/get-lock-service.util.js.map +0 -1
- package/dist/cjs/decorator/lock/util/inject-lock-service.util.d.ts +0 -4
- package/dist/cjs/decorator/lock/util/inject-lock-service.util.d.ts.map +0 -1
- package/dist/cjs/decorator/lock/util/inject-lock-service.util.js +0 -9
- package/dist/cjs/decorator/lock/util/inject-lock-service.util.js.map +0 -1
- package/dist/cjs/decorator/log/type/error-log-function.type.d.ts +0 -2
- package/dist/cjs/decorator/log/type/error-log-function.type.d.ts.map +0 -1
- package/dist/cjs/decorator/log/type/error-log-function.type.js +0 -3
- package/dist/cjs/decorator/log/type/error-log-function.type.js.map +0 -1
- package/dist/cjs/decorator/log/type/post-log-function.type.d.ts +0 -2
- package/dist/cjs/decorator/log/type/post-log-function.type.d.ts.map +0 -1
- package/dist/cjs/decorator/log/type/post-log-function.type.js +0 -3
- package/dist/cjs/decorator/log/type/post-log-function.type.js.map +0 -1
- package/dist/esm/decorator/lock/service/lockable.service.d.ts.map +0 -1
- package/dist/esm/decorator/lock/service/lockable.service.js.map +0 -1
- package/dist/esm/decorator/lock/util/get-lock-service.util.d.ts +0 -3
- package/dist/esm/decorator/lock/util/get-lock-service.util.d.ts.map +0 -1
- package/dist/esm/decorator/lock/util/get-lock-service.util.js +0 -9
- package/dist/esm/decorator/lock/util/get-lock-service.util.js.map +0 -1
- package/dist/esm/decorator/lock/util/inject-lock-service.util.d.ts +0 -4
- package/dist/esm/decorator/lock/util/inject-lock-service.util.d.ts.map +0 -1
- package/dist/esm/decorator/lock/util/inject-lock-service.util.js +0 -5
- package/dist/esm/decorator/lock/util/inject-lock-service.util.js.map +0 -1
- package/dist/esm/decorator/log/type/error-log-function.type.d.ts +0 -2
- package/dist/esm/decorator/log/type/error-log-function.type.d.ts.map +0 -1
- package/dist/esm/decorator/log/type/error-log-function.type.js +0 -2
- package/dist/esm/decorator/log/type/error-log-function.type.js.map +0 -1
- package/dist/esm/decorator/log/type/post-log-function.type.d.ts +0 -2
- package/dist/esm/decorator/log/type/post-log-function.type.d.ts.map +0 -1
- package/dist/esm/decorator/log/type/post-log-function.type.js +0 -2
- package/dist/esm/decorator/log/type/post-log-function.type.js.map +0 -1
- /package/dist/cjs/decorator/lock/{service/lockable.service.d.ts → lockable.service.d.ts} +0 -0
- /package/dist/cjs/decorator/lock/{service/lockable.service.js → lockable.service.js} +0 -0
- /package/dist/esm/decorator/lock/{service/lockable.service.d.ts → lockable.service.d.ts} +0 -0
- /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 @@
|
|
|
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 @@
|
|
|
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(
|
|
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(
|
|
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,
|
|
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(
|
|
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(
|
|
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,
|
|
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,
|
|
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
|
-
|
|
7
|
-
|
|
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
|
-
|
|
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,
|
|
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 '../
|
|
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,
|
|
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
|
|
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":"
|
|
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,77 +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
|
|
5
|
+
const log_decorator_1 = require("@rnw-community/log-decorator");
|
|
6
6
|
const shared_1 = require("@rnw-community/shared");
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
if (error instanceof Error) {
|
|
36
|
-
common_1.Logger.error(error, logContext);
|
|
37
|
-
}
|
|
38
|
-
else if ((0, shared_1.isNotEmptyString)(errorLog)) {
|
|
39
|
-
common_1.Logger.error(errorLog, logContext);
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
common_1.Logger.error(errorLog(error, ...args), logContext);
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
try {
|
|
46
|
-
runPreLog();
|
|
47
|
-
// @ts-expect-error We need this to handle generic methods correctly
|
|
48
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
49
|
-
const result = originalMethod.apply(this, args);
|
|
50
|
-
if ((0, shared_1.isDefined)(postLog)) {
|
|
51
|
-
if ((0, rxjs_1.isObservable)(result)) {
|
|
52
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
53
|
-
return result.pipe((0, rxjs_1.tap)(runPostLog), (0, rxjs_1.catchError)((error) => {
|
|
54
|
-
runErrorLog(error);
|
|
55
|
-
return (0, rxjs_1.throwError)(() => error);
|
|
56
|
-
}));
|
|
57
|
-
}
|
|
58
|
-
else if ((0, shared_1.isPromise)(result)) {
|
|
59
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
60
|
-
return result.then(runPostLog).catch((error) => {
|
|
61
|
-
runErrorLog(error);
|
|
62
|
-
throw error;
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
runPostLog(result);
|
|
66
|
-
}
|
|
67
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
68
|
-
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);
|
|
69
13
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
throw error;
|
|
14
|
+
else {
|
|
15
|
+
common_1.Logger.error(message, logContext);
|
|
73
16
|
}
|
|
74
|
-
}
|
|
75
|
-
return descriptor;
|
|
17
|
+
},
|
|
76
18
|
};
|
|
77
|
-
exports.Log =
|
|
19
|
+
exports.Log = (0, log_decorator_1.createLogDecorator)({ transport: nestLogTransport });
|
|
78
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":";;;AAAA,2CAAwC;
|
|
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"}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -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/
|
|
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';
|
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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/
|
|
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; } });
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -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,
|
|
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
|
-
|
|
3
|
-
|
|
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,
|
|
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
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
|
|
23
|
-
|
|
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
|
-
|
|
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,
|
|
1
|
+
{"version":3,"file":"histogram-metric.decorator.js","sourceRoot":"","sources":["../../../../src/decorator/histogram-metric/histogram-metric.decorator.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,
|
|
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
|
|
6
|
-
ExclusiveLock$: <K extends
|
|
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":"
|
|
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"}
|