@rnw-community/nestjs-enterprise 1.9.0 → 1.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/decorator/histogram-metric/histogram-metric.decorator.d.ts +2 -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 +1 -3
- package/dist/cjs/decorator/histogram-metric/histogram-metric.decorator.js.map +1 -1
- package/dist/cjs/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.d.ts +8 -0
- package/dist/cjs/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.d.ts.map +1 -0
- package/dist/cjs/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.js +22 -0
- package/dist/cjs/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.js.map +1 -0
- package/dist/cjs/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.d.ts +8 -0
- package/dist/cjs/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.d.ts.map +1 -0
- package/dist/cjs/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.js +22 -0
- package/dist/cjs/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.js.map +1 -0
- package/dist/cjs/decorator/lock/interface/lock-handle.interface.d.ts +4 -0
- package/dist/cjs/decorator/lock/interface/lock-handle.interface.d.ts.map +1 -0
- package/dist/cjs/{type/method-decorator.type.js → decorator/lock/interface/lock-handle.interface.js} +1 -1
- package/dist/cjs/decorator/lock/interface/lock-handle.interface.js.map +1 -0
- package/dist/cjs/decorator/lock/interface/lock-service.interface.d.ts +6 -0
- package/dist/cjs/decorator/lock/interface/lock-service.interface.d.ts.map +1 -0
- package/dist/cjs/decorator/lock/interface/lock-service.interface.js +3 -0
- package/dist/cjs/decorator/lock/interface/lock-service.interface.js.map +1 -0
- package/dist/cjs/decorator/lock/lock-observable/lock-observable.decorator.d.ts +6 -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 +10 -24
- 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 +6 -2
- 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 +9 -42
- package/dist/cjs/decorator/lock/lock-promise/lock-promise.decorator.js.map +1 -1
- package/dist/cjs/decorator/lock/service/lockable.service.d.ts +3 -0
- package/dist/cjs/decorator/lock/service/lockable.service.d.ts.map +1 -1
- package/dist/cjs/decorator/lock/service/lockable.service.js +3 -1
- package/dist/cjs/decorator/lock/service/lockable.service.js.map +1 -1
- package/dist/cjs/decorator/lock/util/execute-lock-observable.util.d.ts +4 -0
- package/dist/cjs/decorator/lock/util/execute-lock-observable.util.d.ts.map +1 -0
- package/dist/cjs/decorator/lock/util/execute-lock-observable.util.js +34 -0
- package/dist/cjs/decorator/lock/util/execute-lock-observable.util.js.map +1 -0
- package/dist/cjs/decorator/lock/util/execute-lock-promise.util.d.ts +4 -0
- package/dist/cjs/decorator/lock/util/execute-lock-promise.util.d.ts.map +1 -0
- package/dist/cjs/decorator/lock/util/execute-lock-promise.util.js +38 -0
- package/dist/cjs/decorator/lock/util/execute-lock-promise.util.js.map +1 -0
- package/dist/cjs/decorator/lock/util/get-lock-service.util.d.ts +3 -0
- package/dist/cjs/decorator/lock/util/get-lock-service.util.d.ts.map +1 -0
- package/dist/cjs/decorator/lock/util/get-lock-service.util.js +13 -0
- package/dist/cjs/decorator/lock/util/get-lock-service.util.js.map +1 -0
- package/dist/cjs/decorator/lock/util/get-method-name.util.d.ts +2 -0
- package/dist/cjs/decorator/lock/util/get-method-name.util.d.ts.map +1 -0
- package/dist/cjs/decorator/lock/util/get-method-name.util.js +6 -0
- package/dist/cjs/decorator/lock/util/get-method-name.util.js.map +1 -0
- package/dist/cjs/decorator/lock/util/get-redlock-service.util.d.ts +4 -0
- package/dist/cjs/decorator/lock/util/get-redlock-service.util.d.ts.map +1 -0
- package/dist/cjs/decorator/lock/util/get-redlock-service.util.js +18 -0
- package/dist/cjs/decorator/lock/util/get-redlock-service.util.js.map +1 -0
- package/dist/cjs/decorator/lock/util/inject-lock-service.util.d.ts +4 -0
- package/dist/cjs/decorator/lock/util/inject-lock-service.util.d.ts.map +1 -0
- package/dist/cjs/decorator/lock/util/inject-lock-service.util.js +9 -0
- package/dist/cjs/decorator/lock/util/inject-lock-service.util.js.map +1 -0
- 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 +5 -1
- 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 -0
- package/dist/cjs/decorator/lock/util/validate-redlock.util.d.ts.map +1 -1
- package/dist/cjs/decorator/lock/util/validate-redlock.util.js +1 -0
- package/dist/cjs/decorator/lock/util/validate-redlock.util.js.map +1 -1
- package/dist/cjs/decorator/log/log.decorator.d.ts +2 -2
- package/dist/cjs/decorator/log/log.decorator.d.ts.map +1 -1
- package/dist/cjs/decorator/log/log.decorator.js +4 -9
- package/dist/cjs/decorator/log/log.decorator.js.map +1 -1
- package/dist/cjs/decorator/log/type/error-log-function.type.d.ts +1 -1
- package/dist/cjs/decorator/log/type/error-log-function.type.d.ts.map +1 -1
- package/dist/cjs/decorator/log/type/post-log-function.type.d.ts +1 -1
- package/dist/cjs/decorator/log/type/post-log-function.type.d.ts.map +1 -1
- package/dist/cjs/index.d.ts +5 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +5 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/type/pre-decorator-function.type.d.ts +1 -1
- package/dist/cjs/type/pre-decorator-function.type.d.ts.map +1 -1
- package/dist/esm/decorator/histogram-metric/histogram-metric.decorator.d.ts +2 -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 +1 -3
- package/dist/esm/decorator/histogram-metric/histogram-metric.decorator.js.map +1 -1
- package/dist/esm/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.d.ts +8 -0
- package/dist/esm/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.d.ts.map +1 -0
- package/dist/esm/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.js +18 -0
- package/dist/esm/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.js.map +1 -0
- package/dist/esm/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.d.ts +8 -0
- package/dist/esm/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.d.ts.map +1 -0
- package/dist/esm/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.js +18 -0
- package/dist/esm/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.js.map +1 -0
- package/dist/esm/decorator/lock/interface/lock-handle.interface.d.ts +4 -0
- package/dist/esm/decorator/lock/interface/lock-handle.interface.d.ts.map +1 -0
- package/dist/esm/decorator/lock/interface/lock-handle.interface.js +2 -0
- package/dist/esm/decorator/lock/interface/lock-handle.interface.js.map +1 -0
- package/dist/esm/decorator/lock/interface/lock-service.interface.d.ts +6 -0
- package/dist/esm/decorator/lock/interface/lock-service.interface.d.ts.map +1 -0
- package/dist/esm/decorator/lock/interface/lock-service.interface.js +2 -0
- package/dist/esm/decorator/lock/interface/lock-service.interface.js.map +1 -0
- package/dist/esm/decorator/lock/lock-observable/lock-observable.decorator.d.ts +6 -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 +10 -24
- 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 +6 -2
- 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 +9 -42
- package/dist/esm/decorator/lock/lock-promise/lock-promise.decorator.js.map +1 -1
- package/dist/esm/decorator/lock/service/lockable.service.d.ts +3 -0
- package/dist/esm/decorator/lock/service/lockable.service.d.ts.map +1 -1
- package/dist/esm/decorator/lock/service/lockable.service.js +3 -1
- package/dist/esm/decorator/lock/service/lockable.service.js.map +1 -1
- package/dist/esm/decorator/lock/util/execute-lock-observable.util.d.ts +4 -0
- package/dist/esm/decorator/lock/util/execute-lock-observable.util.d.ts.map +1 -0
- package/dist/esm/decorator/lock/util/execute-lock-observable.util.js +30 -0
- package/dist/esm/decorator/lock/util/execute-lock-observable.util.js.map +1 -0
- package/dist/esm/decorator/lock/util/execute-lock-promise.util.d.ts +4 -0
- package/dist/esm/decorator/lock/util/execute-lock-promise.util.d.ts.map +1 -0
- package/dist/esm/decorator/lock/util/execute-lock-promise.util.js +34 -0
- package/dist/esm/decorator/lock/util/execute-lock-promise.util.js.map +1 -0
- package/dist/esm/decorator/lock/util/get-lock-service.util.d.ts +3 -0
- package/dist/esm/decorator/lock/util/get-lock-service.util.d.ts.map +1 -0
- package/dist/esm/decorator/lock/util/get-lock-service.util.js +9 -0
- package/dist/esm/decorator/lock/util/get-lock-service.util.js.map +1 -0
- package/dist/esm/decorator/lock/util/get-method-name.util.d.ts +2 -0
- package/dist/esm/decorator/lock/util/get-method-name.util.d.ts.map +1 -0
- package/dist/esm/decorator/lock/util/get-method-name.util.js +2 -0
- package/dist/esm/decorator/lock/util/get-method-name.util.js.map +1 -0
- package/dist/esm/decorator/lock/util/get-redlock-service.util.d.ts +4 -0
- package/dist/esm/decorator/lock/util/get-redlock-service.util.d.ts.map +1 -0
- package/dist/esm/decorator/lock/util/get-redlock-service.util.js +14 -0
- package/dist/esm/decorator/lock/util/get-redlock-service.util.js.map +1 -0
- package/dist/esm/decorator/lock/util/inject-lock-service.util.d.ts +4 -0
- package/dist/esm/decorator/lock/util/inject-lock-service.util.d.ts.map +1 -0
- package/dist/esm/decorator/lock/util/inject-lock-service.util.js +5 -0
- package/dist/esm/decorator/lock/util/inject-lock-service.util.js.map +1 -0
- 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 -1
- 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 -0
- package/dist/esm/decorator/lock/util/validate-redlock.util.d.ts.map +1 -1
- package/dist/esm/decorator/lock/util/validate-redlock.util.js +1 -0
- package/dist/esm/decorator/lock/util/validate-redlock.util.js.map +1 -1
- package/dist/esm/decorator/log/log.decorator.d.ts +2 -2
- package/dist/esm/decorator/log/log.decorator.d.ts.map +1 -1
- package/dist/esm/decorator/log/log.decorator.js +4 -9
- package/dist/esm/decorator/log/log.decorator.js.map +1 -1
- package/dist/esm/decorator/log/type/error-log-function.type.d.ts +1 -1
- package/dist/esm/decorator/log/type/error-log-function.type.d.ts.map +1 -1
- package/dist/esm/decorator/log/type/post-log-function.type.d.ts +1 -1
- package/dist/esm/decorator/log/type/post-log-function.type.d.ts.map +1 -1
- package/dist/esm/index.d.ts +5 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/type/pre-decorator-function.type.d.ts +1 -1
- package/dist/esm/type/pre-decorator-function.type.d.ts.map +1 -1
- package/package.json +29 -8
- package/readme.md +20 -7
- package/dist/cjs/type/method-decorator.type.d.ts +0 -2
- package/dist/cjs/type/method-decorator.type.d.ts.map +0 -1
- package/dist/cjs/type/method-decorator.type.js.map +0 -1
- package/dist/esm/type/method-decorator.type.d.ts +0 -2
- package/dist/esm/type/method-decorator.type.d.ts.map +0 -1
- package/dist/esm/type/method-decorator.type.js +0 -2
- package/dist/esm/type/method-decorator.type.js.map +0 -1
|
@@ -7,7 +7,11 @@ const runPreLock = (preLock, ...args) => {
|
|
|
7
7
|
return preLock;
|
|
8
8
|
}
|
|
9
9
|
else if ((0, shared_1.isDefined)(preLock) && typeof preLock === 'function') {
|
|
10
|
-
|
|
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;
|
|
11
15
|
}
|
|
12
16
|
throw new Error('Lock key is not defined');
|
|
13
17
|
};
|
|
@@ -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,
|
|
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,3 +1,4 @@
|
|
|
1
1
|
import type { LockableService } from '../service/lockable.service';
|
|
2
|
+
/** @deprecated Used by deprecated `LockPromise`/`LockObservable` decorators. */
|
|
2
3
|
export declare const validateRedlock: (self: LockableService) => void;
|
|
3
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,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,6BAA6B,CAAC;AAEnE,gFAAgF;AAChF,eAAO,MAAM,eAAe,GAAI,MAAM,eAAe,KAAG,IAMvD,CAAC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.validateRedlock = void 0;
|
|
4
4
|
const shared_1 = require("@rnw-community/shared");
|
|
5
|
+
/** @deprecated Used by deprecated `LockPromise`/`LockObservable` decorators. */
|
|
5
6
|
const validateRedlock = (self) => {
|
|
6
7
|
if (!(0, shared_1.isDefined)(self.redlock)) {
|
|
7
8
|
throw new Error('Redlock is not available on this instance. Ensure that the class using the `Lock` decorator extends `LockableService` or provide redlock field manually.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-redlock.util.js","sourceRoot":"","sources":["../../../../../src/decorator/lock/util/validate-redlock.util.ts"],"names":[],"mappings":";;;AAAA,kDAAkD;
|
|
1
|
+
{"version":3,"file":"validate-redlock.util.js","sourceRoot":"","sources":["../../../../../src/decorator/lock/util/validate-redlock.util.ts"],"names":[],"mappings":";;;AAAA,kDAAkD;AAIlD,gFAAgF;AACzE,MAAM,eAAe,GAAG,CAAC,IAAqB,EAAQ,EAAE;IAC3D,IAAI,CAAC,IAAA,kBAAS,EAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CACX,0JAA0J,CAC7J,CAAC;IACN,CAAC;AACL,CAAC,CAAC;AANW,QAAA,eAAe,mBAM1B"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { type Observable } from 'rxjs';
|
|
2
|
+
import { type AnyFn, type MethodDecoratorType } from '@rnw-community/shared';
|
|
2
3
|
import type { ErrorLogFunction } from './type/error-log-function.type';
|
|
3
4
|
import type { PostLogFunction } from './type/post-log-function.type';
|
|
4
|
-
import type { MethodDecoratorType } from '../../type/method-decorator.type';
|
|
5
5
|
import type { PreDecoratorFunction } from '../../type/pre-decorator-function.type';
|
|
6
6
|
type GetResultType<T> = T extends Promise<infer U> ? U : T extends Observable<infer U> ? U : T;
|
|
7
|
-
export declare const Log: <K extends
|
|
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
8
|
export {};
|
|
9
9
|
//# 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;
|
|
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,CA6EvB,CAAC"}
|
|
@@ -4,9 +4,7 @@ exports.Log = void 0;
|
|
|
4
4
|
const common_1 = require("@nestjs/common");
|
|
5
5
|
const rxjs_1 = require("rxjs");
|
|
6
6
|
const shared_1 = require("@rnw-community/shared");
|
|
7
|
-
const Log =
|
|
8
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
9
|
-
(preLog, postLog, errorLog) => (target, propertyKey, descriptor) => {
|
|
7
|
+
const Log = (preLog, postLog, errorLog) => (target, propertyKey, descriptor) => {
|
|
10
8
|
const logContext = `${target.constructor.name}::${String(propertyKey)}`;
|
|
11
9
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
12
10
|
const originalMethod = descriptor.value;
|
|
@@ -17,8 +15,7 @@ const Log =
|
|
|
17
15
|
common_1.Logger.log(preLog, logContext);
|
|
18
16
|
}
|
|
19
17
|
else if ((0, shared_1.isDefined)(preLog)) {
|
|
20
|
-
|
|
21
|
-
common_1.Logger.log(preLog(args[0], args[1], args[2], args[3], args[4]), logContext);
|
|
18
|
+
common_1.Logger.log(preLog(...args), logContext);
|
|
22
19
|
}
|
|
23
20
|
};
|
|
24
21
|
const runPostLog = (res) => {
|
|
@@ -26,8 +23,7 @@ const Log =
|
|
|
26
23
|
common_1.Logger.debug(postLog, logContext);
|
|
27
24
|
}
|
|
28
25
|
else if ((0, shared_1.isDefined)(postLog)) {
|
|
29
|
-
|
|
30
|
-
common_1.Logger.debug(postLog(res, args[0], args[1], args[2], args[3], args[4]), logContext);
|
|
26
|
+
common_1.Logger.debug(postLog(res, ...args), logContext);
|
|
31
27
|
}
|
|
32
28
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
33
29
|
return res;
|
|
@@ -37,8 +33,7 @@ const Log =
|
|
|
37
33
|
common_1.Logger.error(errorLog, logContext);
|
|
38
34
|
}
|
|
39
35
|
else if ((0, shared_1.isDefined)(errorLog)) {
|
|
40
|
-
|
|
41
|
-
common_1.Logger.error(errorLog(error, args[0], args[1], args[2], args[3], args[4]), logContext);
|
|
36
|
+
common_1.Logger.error(errorLog(error, ...args), logContext);
|
|
42
37
|
}
|
|
43
38
|
};
|
|
44
39
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.decorator.js","sourceRoot":"","sources":["../../../../src/decorator/log/log.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,+BAAkF;AAElF,
|
|
1
|
+
{"version":3,"file":"log.decorator.js","sourceRoot":"","sources":["../../../../src/decorator/log/log.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,+BAAkF;AAElF,kDAAqH;AAS9G,MAAM,GAAG,GACZ,CACQ,MAA4C,EAC5C,OAAiE,EACjE,QAA2C,EACrB,EAAE,CAC5B,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE;IAChC,MAAM,UAAU,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;IACxE,oEAAoE;IACpE,MAAM,cAAc,GAAG,UAAU,CAAC,KAAM,CAAC;IAEzC,qDAAqD;IACrD,UAAU,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW;QAGvC,MAAM,SAAS,GAAG,GAAS,EAAE;YACzB,IAAI,IAAA,yBAAgB,EAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,eAAM,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACnC,CAAC;iBAAM,IAAI,IAAA,kBAAS,EAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,eAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;YAC5C,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,CAAC,GAAM,EAAK,EAAE;YAC7B,IAAI,IAAA,yBAAgB,EAAC,OAAO,CAAC,EAAE,CAAC;gBAC5B,eAAM,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YACtC,CAAC;iBAAM,IAAI,IAAA,kBAAS,EAAC,OAAO,CAAC,EAAE,CAAC;gBAC5B,eAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;YACpD,CAAC;YAED,+DAA+D;YAC/D,OAAO,GAAG,CAAC;QACf,CAAC,CAAC;QAEF,MAAM,WAAW,GAAG,CAAC,KAAc,EAAQ,EAAE;YACzC,IAAI,IAAA,yBAAgB,EAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,eAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACvC,CAAC;iBAAM,IAAI,IAAA,kBAAS,EAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,eAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;YACvD,CAAC;QACL,CAAC,CAAC;QAEF,IAAI,CAAC;YACD,SAAS,EAAE,CAAC;YAEZ,oEAAoE;YACpE,mEAAmE;YACnE,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAEhD,IAAI,IAAA,kBAAS,EAAC,OAAO,CAAC,EAAE,CAAC;gBACrB,IAAI,IAAA,mBAAY,EAAC,MAAM,CAAC,EAAE,CAAC;oBACvB,+DAA+D;oBAC/D,OAAQ,MAAwB,CAAC,IAAI,CACjC,IAAA,UAAG,EAAC,UAAU,CAAC,EACf,IAAA,iBAAU,EAAC,CAAC,KAAc,EAAE,EAAE;wBAC1B,WAAW,CAAC,KAAK,CAAC,CAAC;wBAEnB,OAAO,IAAA,iBAAU,EAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;oBACnC,CAAC,CAAC,CACiB,CAAC;gBAC5B,CAAC;qBAAM,IAAI,IAAA,kBAAS,EAAI,MAAM,CAAC,EAAE,CAAC;oBAC9B,+DAA+D;oBAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;wBACpD,WAAW,CAAC,KAAK,CAAC,CAAC;wBAEnB,MAAM,KAAK,CAAC;oBAChB,CAAC,CAAuB,CAAC;gBAC7B,CAAC;gBAED,UAAU,CAAC,MAAW,CAAC,CAAC;YAC5B,CAAC;YAED,+DAA+D;YAC/D,OAAO,MAAM,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,WAAW,CAAC,KAAK,CAAC,CAAC;YAEnB,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAM,CAAC;IAEP,OAAO,UAAU,CAAC;AACtB,CAAC,CAAC;AAlFG,QAAA,GAAG,OAkFN"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export type ErrorLogFunction<TArgs extends unknown[]> = (error: unknown,
|
|
1
|
+
export type ErrorLogFunction<TArgs extends unknown[]> = (error: unknown, ...args: TArgs) => string;
|
|
2
2
|
//# sourceMappingURL=error-log-function.type.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-log-function.type.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/log/type/error-log-function.type.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"error-log-function.type.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/log/type/error-log-function.type.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,CAAC,KAAK,SAAS,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export type PostLogFunction<T, TArgs extends unknown[]> = (result: T,
|
|
1
|
+
export type PostLogFunction<T, TArgs extends unknown[]> = (result: T, ...args: TArgs) => string;
|
|
2
2
|
//# sourceMappingURL=post-log-function.type.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post-log-function.type.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/log/type/post-log-function.type.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"post-log-function.type.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/log/type/post-log-function.type.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,CAAC,CAAC,EAAE,KAAK,SAAS,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC"}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -3,4 +3,9 @@ export { HistogramMetric } from './decorator/histogram-metric/histogram-metric.d
|
|
|
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
5
|
export { LockableService } from './decorator/lock/service/lockable.service';
|
|
6
|
+
export { createPromiseLockDecorators } from './decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators';
|
|
7
|
+
export { createObservableLockDecorators } from './decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators';
|
|
8
|
+
export type { LockHandle } from './decorator/lock/interface/lock-handle.interface';
|
|
9
|
+
export type { LockServiceInterface } from './decorator/lock/interface/lock-service.interface';
|
|
10
|
+
export type { PreDecoratorFunction } from './type/pre-decorator-function.type';
|
|
6
11
|
//# sourceMappingURL=index.d.ts.map
|
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,2CAA2C,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,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"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LockableService = exports.LockObservable = exports.LockPromise = exports.HistogramMetric = exports.Log = void 0;
|
|
3
|
+
exports.createObservableLockDecorators = exports.createPromiseLockDecorators = exports.LockableService = exports.LockObservable = exports.LockPromise = exports.HistogramMetric = exports.Log = void 0;
|
|
4
4
|
var log_decorator_1 = require("./decorator/log/log.decorator");
|
|
5
5
|
Object.defineProperty(exports, "Log", { enumerable: true, get: function () { return log_decorator_1.Log; } });
|
|
6
6
|
var histogram_metric_decorator_1 = require("./decorator/histogram-metric/histogram-metric.decorator");
|
|
@@ -11,4 +11,8 @@ var lock_observable_decorator_1 = require("./decorator/lock/lock-observable/lock
|
|
|
11
11
|
Object.defineProperty(exports, "LockObservable", { enumerable: true, get: function () { return lock_observable_decorator_1.LockObservable; } });
|
|
12
12
|
var lockable_service_1 = require("./decorator/lock/service/lockable.service");
|
|
13
13
|
Object.defineProperty(exports, "LockableService", { enumerable: true, get: function () { return lockable_service_1.LockableService; } });
|
|
14
|
+
var create_promise_lock_decorators_1 = require("./decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators");
|
|
15
|
+
Object.defineProperty(exports, "createPromiseLockDecorators", { enumerable: true, get: function () { return create_promise_lock_decorators_1.createPromiseLockDecorators; } });
|
|
16
|
+
var create_observable_lock_decorators_1 = require("./decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators");
|
|
17
|
+
Object.defineProperty(exports, "createObservableLockDecorators", { enumerable: true, get: function () { return create_observable_lock_decorators_1.createObservableLockDecorators; } });
|
|
14
18
|
//# sourceMappingURL=index.js.map
|
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,8EAA4E;AAAnE,mHAAA,eAAe,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,8EAA4E;AAAnE,mHAAA,eAAe,OAAA;AACxB,iIAA6H;AAApH,6IAAA,2BAA2B,OAAA;AACpC,0IAAsI;AAA7H,mJAAA,8BAA8B,OAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export type PreDecoratorFunction<TArgs extends unknown[], TResult = string> = (
|
|
1
|
+
export type PreDecoratorFunction<TArgs extends unknown[], TResult = string> = (...args: TArgs) => TResult;
|
|
2
2
|
//# sourceMappingURL=pre-decorator-function.type.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pre-decorator-function.type.d.ts","sourceRoot":"","sources":["../../../src/type/pre-decorator-function.type.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pre-decorator-function.type.d.ts","sourceRoot":"","sources":["../../../src/type/pre-decorator-function.type.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,CAAC,KAAK,SAAS,OAAO,EAAE,EAAE,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { type HistogramConfiguration } from 'prom-client';
|
|
2
|
-
import type
|
|
3
|
-
export declare const HistogramMetric: <M extends string, K extends
|
|
2
|
+
import { type AnyFn, type MethodDecoratorType } from '@rnw-community/shared';
|
|
3
|
+
export declare const HistogramMetric: <M extends string, K extends AnyFn, TResult extends ReturnType<K>, TArgs extends Parameters<K>>(metricName: string, configuration?: Omit<HistogramConfiguration<M>, "name">) => MethodDecoratorType<K>;
|
|
4
4
|
//# sourceMappingURL=histogram-metric.decorator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"histogram-metric.decorator.d.ts","sourceRoot":"","sources":["../../../../src/decorator/histogram-metric/histogram-metric.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,sBAAsB,EAAY,MAAM,aAAa,CAAC;
|
|
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,8 +1,6 @@
|
|
|
1
1
|
import { Histogram, register } from 'prom-client';
|
|
2
2
|
import { isDefined } from '@rnw-community/shared';
|
|
3
|
-
export const HistogramMetric =
|
|
4
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
5
|
-
(metricName, configuration) => (_target, _propertyKey, descriptor) => {
|
|
3
|
+
export const HistogramMetric = (metricName, configuration) => (_target, _propertyKey, descriptor) => {
|
|
6
4
|
let histogram = register.getSingleMetric(metricName);
|
|
7
5
|
if (!isDefined(histogram)) {
|
|
8
6
|
histogram = new Histogram({
|
|
@@ -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,
|
|
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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PreDecoratorFunction } from '../../../type/pre-decorator-function.type';
|
|
2
|
+
import type { LockServiceInterface } from '../interface/lock-service.interface';
|
|
3
|
+
import type { AbstractConstructor, AnyFn, MethodDecoratorType } from '@rnw-community/shared';
|
|
4
|
+
export declare const createObservableLockDecorators: (serviceToken: AbstractConstructor<LockServiceInterface>, defaultDuration: number) => {
|
|
5
|
+
SequentialLock$: <K extends AnyFn, TResult extends ReturnType<K>, TArgs extends Parameters<K>>(preLock: PreDecoratorFunction<TArgs, string[]> | string[], catchErrorFn$?: (error: unknown) => TResult, duration?: number) => MethodDecoratorType<K>;
|
|
6
|
+
ExclusiveLock$: <K extends AnyFn, TResult extends ReturnType<K>, TArgs extends Parameters<K>>(preLock: PreDecoratorFunction<TArgs, string[]> | string[], catchErrorFn$?: (error: unknown) => TResult, duration?: number) => MethodDecoratorType<K>;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=create-observable-lock-decorators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-observable-lock-decorators.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE7F,eAAO,MAAM,8BAA8B,GAAI,cAAc,mBAAmB,CAAC,oBAAoB,CAAC,EAAE,iBAAiB,MAAM;sBAOlH,CAAC,SAAS,KAAK,EAAE,OAAO,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,UAAU,CAAC,CAAC,CAAC,WAC3D,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,kBACzC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,aAChC,MAAM,KAClB,mBAAmB,CAAC,CAAC,CAAC;qBAJ5B,CAAC,SAAS,KAAK,EAAE,OAAO,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,UAAU,CAAC,CAAC,CAAC,WAC3D,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,kBACzC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,aAChC,MAAM,KAClB,mBAAmB,CAAC,CAAC,CAAC;CAiBxC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { executeLockObservable } from '../util/execute-lock-observable.util';
|
|
2
|
+
import { getLockService } from '../util/get-lock-service.util';
|
|
3
|
+
import { getMethodName } from '../util/get-method-name.util';
|
|
4
|
+
import { injectLockService } from '../util/inject-lock-service.util';
|
|
5
|
+
export const createObservableLockDecorators = (serviceToken, defaultDuration) => {
|
|
6
|
+
const serviceSymbol = Symbol('LockService');
|
|
7
|
+
const getService = (instance) => getLockService(instance, serviceSymbol);
|
|
8
|
+
const createDecorator = (retryCount) => (preLock, catchErrorFn$, duration) => (target, propertyKey, descriptor) => {
|
|
9
|
+
injectLockService(target, serviceToken, serviceSymbol);
|
|
10
|
+
descriptor.value = executeLockObservable(getService, preLock, duration ?? defaultDuration, retryCount,
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
12
|
+
descriptor.value, getMethodName(target, propertyKey), catchErrorFn$);
|
|
13
|
+
return descriptor;
|
|
14
|
+
};
|
|
15
|
+
// eslint-disable-next-line no-undefined
|
|
16
|
+
return { SequentialLock$: createDecorator(undefined), ExclusiveLock$: createDecorator(0) };
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=create-observable-lock-decorators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-observable-lock-decorators.js","sourceRoot":"","sources":["../../../../../src/decorator/lock/create-observable-lock-decorators/create-observable-lock-decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAMrE,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,YAAuD,EAAE,eAAuB,EAAE,EAAE;IAC/H,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,CAAC,QAAiB,EAAwB,EAAE,CAC3D,cAAc,CAAC,QAAmC,EAAE,aAAa,CAAC,CAAC;IAEvE,MAAM,eAAe,GACjB,CAAC,UAA8B,EAAE,EAAE,CAC/B,CACQ,OAAyD,EACzD,aAA2C,EAC3C,QAAiB,EACK,EAAE,CAC5B,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE;QAChC,iBAAiB,CAAC,MAAM,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;QAEvD,UAAU,CAAC,KAAK,GAAG,qBAAqB,CACpC,UAAU,EAAE,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,UAAU;QAC5D,oEAAoE;QACpE,UAAU,CAAC,KAAM,EACjB,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,EAClC,aAAa,CACX,CAAC;QAEP,OAAO,UAAU,CAAC;IACtB,CAAC,CAAC;IAEd,wCAAwC;IACxC,OAAO,EAAE,eAAe,EAAE,eAAe,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/F,CAAC,CAAC"}
|
package/dist/esm/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PreDecoratorFunction } from '../../../type/pre-decorator-function.type';
|
|
2
|
+
import type { LockServiceInterface } from '../interface/lock-service.interface';
|
|
3
|
+
import type { AbstractConstructor, AnyFn, MethodDecoratorType } from '@rnw-community/shared';
|
|
4
|
+
export declare const createPromiseLockDecorators: (serviceToken: AbstractConstructor<LockServiceInterface>, defaultDuration: number) => {
|
|
5
|
+
SequentialLock: <K extends AnyFn, TResult extends ReturnType<K>, TArgs extends Parameters<K>>(preLock: PreDecoratorFunction<TArgs, string[]> | string[], catchErrorFn?: (error: unknown) => TResult, duration?: number) => MethodDecoratorType<K>;
|
|
6
|
+
ExclusiveLock: <K extends AnyFn, TResult extends ReturnType<K>, TArgs extends Parameters<K>>(preLock: PreDecoratorFunction<TArgs, string[]> | string[], catchErrorFn?: (error: unknown) => TResult, duration?: number) => MethodDecoratorType<K>;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=create-promise-lock-decorators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-promise-lock-decorators.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE7F,eAAO,MAAM,2BAA2B,GAAI,cAAc,mBAAmB,CAAC,oBAAoB,CAAC,EAAE,iBAAiB,MAAM;qBAO/G,CAAC,SAAS,KAAK,EAAE,OAAO,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,UAAU,CAAC,CAAC,CAAC,WAC3D,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,iBAC1C,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,aAC/B,MAAM,KAClB,mBAAmB,CAAC,CAAC,CAAC;oBAJ5B,CAAC,SAAS,KAAK,EAAE,OAAO,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,UAAU,CAAC,CAAC,CAAC,WAC3D,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,iBAC1C,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,aAC/B,MAAM,KAClB,mBAAmB,CAAC,CAAC,CAAC;CAiBxC,CAAC"}
|
package/dist/esm/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { executeLockPromise } from '../util/execute-lock-promise.util';
|
|
2
|
+
import { getLockService } from '../util/get-lock-service.util';
|
|
3
|
+
import { getMethodName } from '../util/get-method-name.util';
|
|
4
|
+
import { injectLockService } from '../util/inject-lock-service.util';
|
|
5
|
+
export const createPromiseLockDecorators = (serviceToken, defaultDuration) => {
|
|
6
|
+
const serviceSymbol = Symbol('LockService');
|
|
7
|
+
const getService = (instance) => getLockService(instance, serviceSymbol);
|
|
8
|
+
const createDecorator = (retryCount) => (preLock, catchErrorFn, duration) => (target, propertyKey, descriptor) => {
|
|
9
|
+
injectLockService(target, serviceToken, serviceSymbol);
|
|
10
|
+
descriptor.value = executeLockPromise(getService, preLock, duration ?? defaultDuration, retryCount,
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
12
|
+
descriptor.value, getMethodName(target, propertyKey), catchErrorFn);
|
|
13
|
+
return descriptor;
|
|
14
|
+
};
|
|
15
|
+
// eslint-disable-next-line no-undefined
|
|
16
|
+
return { SequentialLock: createDecorator(undefined), ExclusiveLock: createDecorator(0) };
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=create-promise-lock-decorators.js.map
|
package/dist/esm/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-promise-lock-decorators.js","sourceRoot":"","sources":["../../../../../src/decorator/lock/create-promise-lock-decorators/create-promise-lock-decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAMrE,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,YAAuD,EAAE,eAAuB,EAAE,EAAE;IAC5H,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,CAAC,QAAiB,EAAwB,EAAE,CAC3D,cAAc,CAAC,QAAmC,EAAE,aAAa,CAAC,CAAC;IAEvE,MAAM,eAAe,GACjB,CAAC,UAA8B,EAAE,EAAE,CAC/B,CACQ,OAAyD,EACzD,YAA0C,EAC1C,QAAiB,EACK,EAAE,CAC5B,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE;QAChC,iBAAiB,CAAC,MAAM,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;QAEvD,UAAU,CAAC,KAAK,GAAG,kBAAkB,CACjC,UAAU,EAAE,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,UAAU;QAC5D,oEAAoE;QACpE,UAAU,CAAC,KAAM,EACjB,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,EAClC,YAAY,CACV,CAAC;QAEP,OAAO,UAAU,CAAC;IACtB,CAAC,CAAC;IAEd,wCAAwC;IACxC,OAAO,EAAE,cAAc,EAAE,eAAe,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7F,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lock-handle.interface.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/lock/interface/lock-handle.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lock-handle.interface.js","sourceRoot":"","sources":["../../../../../src/decorator/lock/interface/lock-handle.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { LockHandle } from './lock-handle.interface';
|
|
2
|
+
export interface LockServiceInterface {
|
|
3
|
+
acquire(resources: string[], duration: number): Promise<LockHandle>;
|
|
4
|
+
tryAcquire(resources: string[], duration: number): Promise<LockHandle | undefined>;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=lock-service.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lock-service.interface.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/lock/interface/lock-service.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,WAAW,oBAAoB;IACjC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACpE,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;CACtF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lock-service.interface.js","sourceRoot":"","sources":["../../../../../src/decorator/lock/interface/lock-service.interface.ts"],"names":[],"mappings":""}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import type { MethodDecoratorType } from '../../../type/method-decorator.type';
|
|
2
1
|
import type { PreDecoratorFunction } from '../../../type/pre-decorator-function.type';
|
|
3
|
-
|
|
2
|
+
import type { AnyFn, MethodDecoratorType } from '@rnw-community/shared';
|
|
3
|
+
/**
|
|
4
|
+
* @deprecated Use `createObservableLockDecorators` instead. This decorator requires class inheritance from `LockableService`.
|
|
5
|
+
* @see {@link createObservableLockDecorators} for the DI-based approach.
|
|
6
|
+
*/
|
|
7
|
+
export declare const LockObservable: <K extends AnyFn, TResult extends ReturnType<K>, TArgs extends Parameters<K>>(preLock: PreDecoratorFunction<TArgs, string[]> | string[], duration: number, catchErrorFn$?: (error: unknown) => TResult, retryCount?: number) => MethodDecoratorType<K>;
|
|
4
8
|
//# sourceMappingURL=lock-observable.decorator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock-observable.decorator.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/lock/lock-observable/lock-observable.decorator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lock-observable.decorator.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/lock/lock-observable/lock-observable.decorator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAExE;;;GAGG;AACH,eAAO,MAAM,cAAc,GACtB,CAAC,SAAS,KAAK,EAAE,OAAO,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,UAAU,CAAC,CAAC,CAAC,EACpE,SAAS,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,EACzD,UAAU,MAAM,EAChB,gBAAgB,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,EAC3C,aAAa,MAAM,KACpB,mBAAmB,CAAC,CAAC,CAWvB,CAAC"}
|
|
@@ -1,28 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { executeLockObservable } from '../util/execute-lock-observable.util';
|
|
2
|
+
import { getMethodName } from '../util/get-method-name.util';
|
|
3
|
+
import { getRedlockService } from '../util/get-redlock-service.util';
|
|
4
|
+
/**
|
|
5
|
+
* @deprecated Use `createObservableLockDecorators` instead. This decorator requires class inheritance from `LockableService`.
|
|
6
|
+
* @see {@link createObservableLockDecorators} for the DI-based approach.
|
|
7
|
+
*/
|
|
8
|
+
export const LockObservable = (preLock, duration, catchErrorFn$, retryCount) => (target, propertyKey, descriptor) => {
|
|
9
|
+
descriptor.value = executeLockObservable(getRedlockService, preLock, duration, retryCount,
|
|
8
10
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
9
|
-
|
|
10
|
-
// eslint-disable-next-line func-names
|
|
11
|
-
descriptor.value = function (...args) {
|
|
12
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
13
|
-
return of(true).pipe(tap(() => void validateRedlock(this)), map(() => runPreLock(preLock, ...args)), concatMap(lockKeys => from(this.redlock.acquire(lockKeys, duration)).pipe(concatMap(currentLock => {
|
|
14
|
-
const result = originalMethod.apply(this, args);
|
|
15
|
-
if (!isObservable(result)) {
|
|
16
|
-
void currentLock.release().catch(() => void 0);
|
|
17
|
-
throw new Error(`Method ${target.constructor.name}::${String(propertyKey)} does not return an observable`);
|
|
18
|
-
}
|
|
19
|
-
return result.pipe(finalize(() => {
|
|
20
|
-
void currentLock.release().catch(() => void 0);
|
|
21
|
-
}));
|
|
22
|
-
}), isDefined(catchErrorFn$)
|
|
23
|
-
? catchError((err) => catchErrorFn$(err))
|
|
24
|
-
: tap())));
|
|
25
|
-
};
|
|
11
|
+
descriptor.value, getMethodName(target, propertyKey), catchErrorFn$);
|
|
26
12
|
return descriptor;
|
|
27
13
|
};
|
|
28
14
|
//# sourceMappingURL=lock-observable.decorator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock-observable.decorator.js","sourceRoot":"","sources":["../../../../../src/decorator/lock/lock-observable/lock-observable.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"lock-observable.decorator.js","sourceRoot":"","sources":["../../../../../src/decorator/lock/lock-observable/lock-observable.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAKrE;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GACvB,CACQ,OAAyD,EACzD,QAAgB,EAChB,aAA2C,EAC3C,UAAmB,EACG,EAAE,CAC5B,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE;IAChC,UAAU,CAAC,KAAK,GAAG,qBAAqB,CACpC,iBAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU;IAChD,oEAAoE;IACpE,UAAU,CAAC,KAAM,EACjB,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,EAClC,aAAa,CACX,CAAC;IAEP,OAAO,UAAU,CAAC;AACtB,CAAC,CAAC"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import type { MethodDecoratorType } from '../../../type/method-decorator.type';
|
|
2
1
|
import type { PreDecoratorFunction } from '../../../type/pre-decorator-function.type';
|
|
3
|
-
|
|
2
|
+
import type { AnyFn, MethodDecoratorType } from '@rnw-community/shared';
|
|
3
|
+
/**
|
|
4
|
+
* @deprecated Use `createPromiseLockDecorators` instead. This decorator requires class inheritance from `LockableService`.
|
|
5
|
+
* @see {@link createPromiseLockDecorators} for the DI-based approach.
|
|
6
|
+
*/
|
|
7
|
+
export declare const LockPromise: <K extends AnyFn, TResult extends ReturnType<K>, TArgs extends Parameters<K>>(preLock: PreDecoratorFunction<TArgs, string[]> | string[], duration: number, catchErrorFn?: (error: unknown) => TResult, retryCount?: number) => MethodDecoratorType<K>;
|
|
4
8
|
//# sourceMappingURL=lock-promise.decorator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock-promise.decorator.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/lock/lock-promise/lock-promise.decorator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lock-promise.decorator.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/lock/lock-promise/lock-promise.decorator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAExE;;;GAGG;AACH,eAAO,MAAM,WAAW,GACnB,CAAC,SAAS,KAAK,EAAE,OAAO,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,UAAU,CAAC,CAAC,CAAC,EACpE,SAAS,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,EACzD,UAAU,MAAM,EAChB,eAAe,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,EAC1C,aAAa,MAAM,KACpB,mBAAmB,CAAC,CAAC,CAUvB,CAAC"}
|
|
@@ -1,45 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
// eslint-disable-next-line func-names
|
|
11
|
-
descriptor.value = function (...args) {
|
|
12
|
-
let lockKeys;
|
|
13
|
-
try {
|
|
14
|
-
validateRedlock(this);
|
|
15
|
-
lockKeys = runPreLock(preLock, ...args);
|
|
16
|
-
}
|
|
17
|
-
catch (error) {
|
|
18
|
-
// eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
|
|
19
|
-
return Promise.reject(error);
|
|
20
|
-
}
|
|
21
|
-
return this.redlock
|
|
22
|
-
.acquire(lockKeys, duration)
|
|
23
|
-
.then(currentLock => {
|
|
24
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
25
|
-
const originalResult = originalMethod.apply(this, args);
|
|
26
|
-
if (!isPromise(originalResult)) {
|
|
27
|
-
// HINT: https://github.com/mike-marcacci/node-redlock/issues/168
|
|
28
|
-
void currentLock.release().catch(() => void 0);
|
|
29
|
-
throw new Error(`Method ${target.constructor.name}::${String(propertyKey)} does not return a promise`);
|
|
30
|
-
}
|
|
31
|
-
return originalResult.finally(() => {
|
|
32
|
-
// HINT: https://github.com/mike-marcacci/node-redlock/issues/168
|
|
33
|
-
void currentLock.release().catch(() => void 0);
|
|
34
|
-
});
|
|
35
|
-
})
|
|
36
|
-
.catch((err) => {
|
|
37
|
-
if (isDefined(catchErrorFn)) {
|
|
38
|
-
return catchErrorFn(err);
|
|
39
|
-
}
|
|
40
|
-
throw err;
|
|
41
|
-
});
|
|
42
|
-
};
|
|
1
|
+
import { executeLockPromise } from '../util/execute-lock-promise.util';
|
|
2
|
+
import { getMethodName } from '../util/get-method-name.util';
|
|
3
|
+
import { getRedlockService } from '../util/get-redlock-service.util';
|
|
4
|
+
/**
|
|
5
|
+
* @deprecated Use `createPromiseLockDecorators` instead. This decorator requires class inheritance from `LockableService`.
|
|
6
|
+
* @see {@link createPromiseLockDecorators} for the DI-based approach.
|
|
7
|
+
*/
|
|
8
|
+
export const LockPromise = (preLock, duration, catchErrorFn, retryCount) => (target, propertyKey, descriptor) => {
|
|
9
|
+
descriptor.value = executeLockPromise(getRedlockService, preLock, duration, retryCount, descriptor.value, getMethodName(target, propertyKey), catchErrorFn);
|
|
43
10
|
return descriptor;
|
|
44
11
|
};
|
|
45
12
|
//# sourceMappingURL=lock-promise.decorator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock-promise.decorator.js","sourceRoot":"","sources":["../../../../../src/decorator/lock/lock-promise/lock-promise.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"lock-promise.decorator.js","sourceRoot":"","sources":["../../../../../src/decorator/lock/lock-promise/lock-promise.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAKrE;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GACpB,CACQ,OAAyD,EACzD,QAAgB,EAChB,YAA0C,EAC1C,UAAmB,EACG,EAAE,CAC5B,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE;IAChC,UAAU,CAAC,KAAK,GAAG,kBAAkB,CACjC,iBAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAChD,UAAU,CAAC,KAAU,EACrB,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,EAClC,YAAY,CACV,CAAC;IAEP,OAAO,UAAU,CAAC;AACtB,CAAC,CAAC"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import Redlock, { type Settings } from 'redlock';
|
|
2
2
|
import type Redis from 'ioredis';
|
|
3
|
+
/**
|
|
4
|
+
* @deprecated Use `createPromiseLockDecorators` or `createObservableLockDecorators` with a custom `LockServiceInterface` instead.
|
|
5
|
+
*/
|
|
3
6
|
export declare class LockableService {
|
|
4
7
|
private readonly redisClient;
|
|
5
8
|
readonly redlock: Redlock;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lockable.service.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/lock/service/lockable.service.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"lockable.service.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/lock/service/lockable.service.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC;;GAEG;AACH,qBAAa,eAAe;IAKpB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAJhC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;gBAIL,WAAW,EAAE,KAAK,EACnC,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC;CAIlC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import Redlock from 'redlock';
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated Use `createPromiseLockDecorators` or `createObservableLockDecorators` with a custom `LockServiceInterface` instead.
|
|
4
|
+
*/
|
|
3
5
|
export class LockableService {
|
|
4
6
|
constructor(
|
|
5
7
|
// TODO: Add support for multiple redis clients/sentinels/clusters?
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lockable.service.js","sourceRoot":"","sources":["../../../../../src/decorator/lock/service/lockable.service.ts"],"names":[],"mappings":"AAAA,OAAO,OAA0B,MAAM,SAAS,CAAC;AAIjD
|
|
1
|
+
{"version":3,"file":"lockable.service.js","sourceRoot":"","sources":["../../../../../src/decorator/lock/service/lockable.service.ts"],"names":[],"mappings":"AAAA,OAAO,OAA0B,MAAM,SAAS,CAAC;AAIjD;;GAEG;AACH,MAAM,OAAO,eAAe;IAGxB;IACI,mEAAmE;IAClD,WAAkB,EACnC,OAA2B;QADV,gBAAW,GAAX,WAAW,CAAO;QAGnC,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;CACJ"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { PreDecoratorFunction } from '../../../type/pre-decorator-function.type';
|
|
2
|
+
import type { LockServiceInterface } from '../interface/lock-service.interface';
|
|
3
|
+
export declare const executeLockObservable: <TResult, TArgs extends unknown[] = unknown[]>(getLockServiceFn: (instance: unknown) => LockServiceInterface, preLock: PreDecoratorFunction<TArgs, string[]> | string[], duration: number, retryCount: number | undefined, originalMethod: (...fnArgs: TArgs) => unknown, methodName: string, catchErrorFn$?: (error: unknown) => TResult) => (this: unknown, ...args: TArgs) => TResult;
|
|
4
|
+
//# sourceMappingURL=execute-lock-observable.util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execute-lock-observable.util.d.ts","sourceRoot":"","sources":["../../../../../src/decorator/lock/util/execute-lock-observable.util.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAEhF,eAAO,MAAM,qBAAqB,GAAI,OAAO,EAAE,KAAK,SAAS,OAAO,EAAE,GAAG,OAAO,EAAE,EAC9E,kBAAkB,CAAC,QAAQ,EAAE,OAAO,KAAK,oBAAoB,EAC7D,SAAS,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,EACzD,UAAU,MAAM,EAChB,YAAY,MAAM,GAAG,SAAS,EAC9B,gBAAgB,CAAC,GAAG,MAAM,EAAE,KAAK,KAAK,OAAO,EAC7C,YAAY,MAAM,EAClB,gBAAgB,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,MAEhC,MAAM,OAAO,EAAE,GAAG,MAAM,KAAK,KAAG,OAmC9C,CAAC"}
|