@decaf-ts/transactional-decorators 0.6.0 → 0.8.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/lib/cjs/Transaction.cjs +17 -14
- package/lib/cjs/Transaction.cjs.map +1 -0
- package/lib/cjs/constants.cjs +3 -2
- package/lib/cjs/constants.cjs.map +1 -0
- package/lib/cjs/decorators.cjs +11 -10
- package/lib/cjs/decorators.cjs.map +1 -0
- package/lib/cjs/errors.cjs +1 -0
- package/lib/cjs/errors.cjs.map +1 -0
- package/lib/cjs/index.cjs +2 -1
- package/lib/cjs/index.cjs.map +1 -0
- package/lib/cjs/interfaces/TransactionLock.cjs +1 -0
- package/lib/cjs/interfaces/TransactionLock.cjs.map +1 -0
- package/lib/cjs/interfaces/index.cjs +6 -5
- package/lib/cjs/interfaces/index.cjs.map +1 -0
- package/lib/cjs/locks/Lock.cjs +1 -0
- package/lib/cjs/locks/Lock.cjs.map +1 -0
- package/lib/cjs/locks/MultiLock.cjs +5 -4
- package/lib/cjs/locks/MultiLock.cjs.map +1 -0
- package/lib/cjs/locks/SynchronousLock.cjs +5 -4
- package/lib/cjs/locks/SynchronousLock.cjs.map +1 -0
- package/lib/cjs/locks/index.cjs +6 -5
- package/lib/cjs/locks/index.cjs.map +1 -0
- package/lib/cjs/overrides/Metadata.cjs +1 -0
- package/lib/cjs/overrides/Metadata.cjs.map +1 -0
- package/lib/cjs/overrides/index.cjs +1 -0
- package/lib/cjs/overrides/index.cjs.map +1 -0
- package/lib/cjs/overrides/overrides.cjs +4 -3
- package/lib/cjs/overrides/overrides.cjs.map +1 -0
- package/lib/cjs/types.cjs +1 -0
- package/lib/cjs/types.cjs.map +1 -0
- package/lib/esm/index.js +1 -1
- package/lib/types/Transaction.d.cts +160 -0
- package/lib/types/Transaction.d.mts +160 -0
- package/lib/types/constants.d.cts +14 -0
- package/lib/types/constants.d.mts +14 -0
- package/lib/types/decorators.d.cts +33 -0
- package/lib/types/decorators.d.mts +33 -0
- package/lib/types/errors.d.cts +4 -0
- package/lib/types/errors.d.mts +4 -0
- package/lib/types/index.d.cts +21 -0
- package/lib/types/index.d.mts +21 -0
- package/lib/types/index.d.ts +1 -1
- package/lib/types/interfaces/TransactionLock.d.cts +28 -0
- package/lib/types/interfaces/TransactionLock.d.mts +28 -0
- package/lib/types/interfaces/index.d.cts +6 -0
- package/lib/types/interfaces/index.d.mts +6 -0
- package/lib/types/locks/Lock.d.cts +33 -0
- package/lib/types/locks/Lock.d.mts +33 -0
- package/lib/types/locks/MultiLock.d.cts +10 -0
- package/lib/types/locks/MultiLock.d.mts +10 -0
- package/lib/types/locks/SynchronousLock.d.cts +43 -0
- package/lib/types/locks/SynchronousLock.d.mts +43 -0
- package/lib/types/locks/index.d.cts +8 -0
- package/lib/types/locks/index.d.mts +8 -0
- package/lib/types/overrides/Metadata.d.cts +8 -0
- package/lib/types/overrides/Metadata.d.mts +8 -0
- package/lib/types/overrides/index.d.cts +2 -0
- package/lib/types/overrides/index.d.mts +2 -0
- package/lib/types/overrides/overrides.d.cts +1 -0
- package/lib/types/overrides/overrides.d.mts +1 -0
- package/lib/types/types.d.cts +7 -0
- package/lib/types/types.d.mts +7 -0
- package/package.json +4 -4
- package/lib/cjs/Transaction.js.map +0 -1
- package/lib/cjs/constants.js.map +0 -1
- package/lib/cjs/decorators.js.map +0 -1
- package/lib/cjs/errors.js.map +0 -1
- package/lib/cjs/index.js.map +0 -1
- package/lib/cjs/interfaces/TransactionLock.js.map +0 -1
- package/lib/cjs/interfaces/index.js.map +0 -1
- package/lib/cjs/locks/Lock.js.map +0 -1
- package/lib/cjs/locks/MultiLock.js.map +0 -1
- package/lib/cjs/locks/SynchronousLock.js.map +0 -1
- package/lib/cjs/locks/index.js.map +0 -1
- package/lib/cjs/overrides/Metadata.js.map +0 -1
- package/lib/cjs/overrides/index.js.map +0 -1
- package/lib/cjs/overrides/overrides.js.map +0 -1
- package/lib/cjs/types.js.map +0 -1
package/lib/cjs/Transaction.cjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Transaction = void 0;
|
|
4
|
-
const
|
|
4
|
+
const SynchronousLock_js_1 = require("./locks/SynchronousLock.cjs");
|
|
5
5
|
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
6
6
|
require("./overrides/index.cjs");
|
|
7
7
|
const decoration_1 = require("@decaf-ts/decoration");
|
|
8
8
|
const logging_1 = require("@decaf-ts/logging");
|
|
9
|
-
const
|
|
9
|
+
const errors_js_1 = require("./errors.cjs");
|
|
10
10
|
const objectNameCache = new WeakMap();
|
|
11
11
|
/**
|
|
12
12
|
* @description Core transaction management class
|
|
@@ -56,16 +56,18 @@ class Transaction extends logging_1.LoggedClass {
|
|
|
56
56
|
static { this.debug = false; }
|
|
57
57
|
static { this.globalTimeout = -1; }
|
|
58
58
|
static { this.metadataCache = new WeakMap(); }
|
|
59
|
-
static {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
59
|
+
static {
|
|
60
|
+
this.log = new Proxy(logging_1.Logging.for(Transaction), {
|
|
61
|
+
get(target, prop, receiver) {
|
|
62
|
+
if (prop !== "log" || Transaction.debug)
|
|
63
|
+
return Reflect.get(target, prop, receiver);
|
|
64
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
65
|
+
return (...args) => {
|
|
66
|
+
// do nothing. ignore the log message the Transaction is not in debug mode
|
|
67
|
+
};
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
}
|
|
69
71
|
get log() {
|
|
70
72
|
if (!this["_log"]) {
|
|
71
73
|
this["_log"] = Transaction.log;
|
|
@@ -172,7 +174,7 @@ class Transaction extends logging_1.LoggedClass {
|
|
|
172
174
|
*/
|
|
173
175
|
static getLock() {
|
|
174
176
|
if (!this.lock)
|
|
175
|
-
this.lock = new
|
|
177
|
+
this.lock = new SynchronousLock_js_1.SynchronousLock();
|
|
176
178
|
return this.lock;
|
|
177
179
|
}
|
|
178
180
|
/**
|
|
@@ -325,7 +327,7 @@ class Transaction extends logging_1.LoggedClass {
|
|
|
325
327
|
const timer = setTimeout(() => {
|
|
326
328
|
if (settled)
|
|
327
329
|
return;
|
|
328
|
-
const error = new
|
|
330
|
+
const error = new errors_js_1.TimeoutError(`Transaction ${this.toString()} exceeded timeout of ${timeoutMs}ms`);
|
|
329
331
|
log.warn(error.message);
|
|
330
332
|
this.release(error).catch((releaseErr) => log.error(releaseErr));
|
|
331
333
|
reject(error);
|
|
@@ -406,4 +408,5 @@ class Transaction extends logging_1.LoggedClass {
|
|
|
406
408
|
}
|
|
407
409
|
}
|
|
408
410
|
exports.Transaction = Transaction;
|
|
411
|
+
//# sourceMappingURL=Transaction.js.map
|
|
409
412
|
//# sourceMappingURL=Transaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Transaction.js","sourceRoot":"","sources":["Transaction.js"],"names":[],"mappings":"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"}
|
package/lib/cjs/constants.cjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TransactionalKeys = void 0;
|
|
2
4
|
/**
|
|
3
5
|
* @typedef {Object} TransactionalKeysType
|
|
4
6
|
* @property {string} REFLECT - Key used for reflection metadata related to transactional models
|
|
5
7
|
* @property {string} TRANSACTIONAL - Key used to identify transactional properties
|
|
6
8
|
* @memberOf module:transactions
|
|
7
9
|
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.TransactionalKeys = void 0;
|
|
10
10
|
/**
|
|
11
11
|
* @description Keys used for transactional operations
|
|
12
12
|
* @summary Constant object containing string keys used throughout the transactional system for reflection and identification
|
|
@@ -17,4 +17,5 @@ exports.TransactionalKeys = void 0;
|
|
|
17
17
|
exports.TransactionalKeys = {
|
|
18
18
|
TRANSACTIONAL: "transactional",
|
|
19
19
|
};
|
|
20
|
+
//# sourceMappingURL=constants.js.map
|
|
20
21
|
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["constants.js"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH;;;;;;GAMG;AACU,QAAA,iBAAiB,GAAG;IAC7B,aAAa,EAAE,eAAe;CACjC,CAAC;AACF,qCAAqC"}
|
package/lib/cjs/decorators.cjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.transactional = transactional;
|
|
4
|
-
const
|
|
4
|
+
const constants_js_1 = require("./constants.cjs");
|
|
5
5
|
const decoration_1 = require("@decaf-ts/decoration");
|
|
6
|
-
const
|
|
6
|
+
const Transaction_js_1 = require("./Transaction.cjs");
|
|
7
7
|
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
8
8
|
/**
|
|
9
9
|
* @description Method decorator that enables transactional behavior
|
|
@@ -43,7 +43,7 @@ function transactional(...data) {
|
|
|
43
43
|
if (!descriptor)
|
|
44
44
|
throw new db_decorators_1.InternalError("This decorator only applies to methods");
|
|
45
45
|
(0, decoration_1.method)()(target, propertyKey, descriptor);
|
|
46
|
-
decoration_1.Metadata.set(target.constructor, decoration_1.Metadata.key(
|
|
46
|
+
decoration_1.Metadata.set(target.constructor, decoration_1.Metadata.key(constants_js_1.TransactionalKeys.TRANSACTIONAL, propertyKey), {
|
|
47
47
|
data: data,
|
|
48
48
|
});
|
|
49
49
|
descriptor.value = new Proxy(descriptor.value, {
|
|
@@ -63,7 +63,7 @@ function transactional(...data) {
|
|
|
63
63
|
const transactionPrefixLength = (() => {
|
|
64
64
|
let count = 0;
|
|
65
65
|
while (count < argArray.length &&
|
|
66
|
-
argArray[count] instanceof
|
|
66
|
+
argArray[count] instanceof Transaction_js_1.Transaction) {
|
|
67
67
|
count++;
|
|
68
68
|
}
|
|
69
69
|
return count;
|
|
@@ -71,11 +71,11 @@ function transactional(...data) {
|
|
|
71
71
|
const invocationArgs = transactionPrefixLength > 0
|
|
72
72
|
? argArray.slice(transactionPrefixLength)
|
|
73
73
|
: argArray;
|
|
74
|
-
const activeTransaction = candidate instanceof
|
|
74
|
+
const activeTransaction = candidate instanceof Transaction_js_1.Transaction
|
|
75
75
|
? candidate
|
|
76
|
-
:
|
|
76
|
+
: Transaction_js_1.Transaction.contextTransaction(thisArg);
|
|
77
77
|
if (activeTransaction) {
|
|
78
|
-
const updatedTransaction = new
|
|
78
|
+
const updatedTransaction = new Transaction_js_1.Transaction(target.name, propertyKey, async () => {
|
|
79
79
|
try {
|
|
80
80
|
return resolve(await Reflect.apply(obj, updatedTransaction.bindToTransaction(thisArg), invocationArgs));
|
|
81
81
|
}
|
|
@@ -87,7 +87,7 @@ function transactional(...data) {
|
|
|
87
87
|
activeTransaction.fire();
|
|
88
88
|
}
|
|
89
89
|
else {
|
|
90
|
-
const newTransaction = new
|
|
90
|
+
const newTransaction = new Transaction_js_1.Transaction(target.name, propertyKey, async () => {
|
|
91
91
|
try {
|
|
92
92
|
return exitFunction(newTransaction, undefined, await Reflect.apply(obj, newTransaction.bindToTransaction(thisArg), invocationArgs));
|
|
93
93
|
}
|
|
@@ -95,7 +95,7 @@ function transactional(...data) {
|
|
|
95
95
|
return exitFunction(newTransaction, e);
|
|
96
96
|
}
|
|
97
97
|
}, data.length ? data : undefined);
|
|
98
|
-
|
|
98
|
+
Transaction_js_1.Transaction.submit(newTransaction);
|
|
99
99
|
}
|
|
100
100
|
});
|
|
101
101
|
},
|
|
@@ -103,11 +103,12 @@ function transactional(...data) {
|
|
|
103
103
|
return descriptor;
|
|
104
104
|
};
|
|
105
105
|
}
|
|
106
|
-
return decoration_1.Decoration.for(
|
|
106
|
+
return decoration_1.Decoration.for(constants_js_1.TransactionalKeys.TRANSACTIONAL)
|
|
107
107
|
.define({
|
|
108
108
|
decorator: innerTransactional,
|
|
109
109
|
args: data,
|
|
110
110
|
})
|
|
111
111
|
.apply();
|
|
112
112
|
}
|
|
113
|
+
//# sourceMappingURL=decorators.js.map
|
|
113
114
|
//# sourceMappingURL=decorators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["decorators.js"],"names":[],"mappings":"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"}
|
package/lib/cjs/errors.cjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["errors.js"],"names":[],"mappings":";;;AAAA,2DAAwD;AACxD,MAAa,YAAa,SAAQ,6BAAa;IAC3C,YAAY,OAAO,GAAG,uBAAuB;QACzC,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC;CACJ;AAJD,oCAIC;AACD,kCAAkC"}
|
package/lib/cjs/index.cjs
CHANGED
|
@@ -35,7 +35,8 @@ __exportStar(require("./types.cjs"), exports);
|
|
|
35
35
|
* @const VERSION
|
|
36
36
|
* @memberOf module:transactions
|
|
37
37
|
*/
|
|
38
|
-
exports.VERSION = "0.
|
|
38
|
+
exports.VERSION = "0.7.0";
|
|
39
39
|
exports.PACKAGE_NAME = "@decaf-ts/transactional-decorators";
|
|
40
40
|
decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
|
|
41
|
+
//# sourceMappingURL=index.js.map
|
|
41
42
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qDAAgD;AAChD,wDAAsC;AACtC,mDAAiC;AACjC,uDAAqC;AACrC,iDAA+B;AAC/B,8CAA4B;AAC5B,kDAAgC;AAChC,mDAAiC;AACjC,6CAA2B;AAC3B;;;;GAIG;AACH;;;;;GAKG;AACU,QAAA,OAAO,GAAG,aAAa,CAAC;AACxB,QAAA,YAAY,GAAG,aAAa,CAAC;AAC1C,qBAAQ,CAAC,eAAe,CAAC,oBAAY,EAAE,eAAO,CAAC,CAAC;AAChD,iCAAiC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransactionLock.js","sourceRoot":"","sources":["TransactionLock.js"],"names":[],"mappings":";;AACA,2CAA2C"}
|
|
@@ -1,9 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @description Transaction interfaces module
|
|
4
|
-
* @summary Contains interface definitions for the transaction system, providing contracts for transaction-related components
|
|
5
|
-
* @module transactions/interfaces
|
|
6
|
-
*/
|
|
7
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
3
|
if (k2 === undefined) k2 = k;
|
|
9
4
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -19,5 +14,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
19
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
15
|
};
|
|
21
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
/**
|
|
18
|
+
* @description Transaction interfaces module
|
|
19
|
+
* @summary Contains interface definitions for the transaction system, providing contracts for transaction-related components
|
|
20
|
+
* @module transactions/interfaces
|
|
21
|
+
*/
|
|
22
22
|
__exportStar(require("./TransactionLock.cjs"), exports);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
23
24
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,uDAAqC;AACrC,iCAAiC"}
|
package/lib/cjs/locks/Lock.cjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Lock.js","sourceRoot":"","sources":["Lock.js"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;GAWG;AACH,MAAa,IAAI;IACb;QACI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;IACD;;;;;OAKG;IACH,6DAA6D;IAC7D,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI;QACvB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,MAAM,CAAC;QACX,IAAI,CAAC;YACD,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,CAAC,EAAE,CAAC;YACP,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,MAAM,CAAC,CAAC;QACZ,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,MAAM,CAAC;IAClB,CAAC;IACD;;;OAGG;IACH,6DAA6D;IAC7D,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI;QACjB,4DAA4D;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9D,CAAC;aACI,CAAC;YACF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC;IACL,CAAC;IACD;;OAEG;IACH,6DAA6D;IAC7D,OAAO,CAAC,GAAG,IAAI;QACX,4DAA4D;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,IAAI,EAAE,CAAC;YACP,IAAI,OAAO,UAAU,CAAC,MAAM,KAAK,WAAW;gBACxC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB;;gBAExD,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,4BAA4B;QACzD,CAAC;aACI,CAAC;YACF,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACxB,CAAC;IACL,CAAC;CACJ;AA3DD,oBA2DC;AACD,gCAAgC"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MultiLock = void 0;
|
|
4
|
-
const
|
|
5
|
-
class MultiLock extends
|
|
4
|
+
const Lock_js_1 = require("./Lock.cjs");
|
|
5
|
+
class MultiLock extends Lock_js_1.Lock {
|
|
6
6
|
constructor() {
|
|
7
7
|
super();
|
|
8
8
|
this.locks = {};
|
|
9
|
-
this.lock = new
|
|
9
|
+
this.lock = new Lock_js_1.Lock();
|
|
10
10
|
}
|
|
11
11
|
async lockFor(name) {
|
|
12
12
|
await this.lock.acquire();
|
|
13
13
|
if (!this.locks[name])
|
|
14
|
-
this.locks[name] = new
|
|
14
|
+
this.locks[name] = new Lock_js_1.Lock();
|
|
15
15
|
this.lock.release();
|
|
16
16
|
return this.locks[name];
|
|
17
17
|
}
|
|
@@ -31,4 +31,5 @@ class MultiLock extends Lock_1.Lock {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
exports.MultiLock = MultiLock;
|
|
34
|
+
//# sourceMappingURL=MultiLock.js.map
|
|
34
35
|
//# sourceMappingURL=MultiLock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultiLock.js","sourceRoot":"","sources":["MultiLock.js"],"names":[],"mappings":";;;AAAA,uCAAiC;AACjC,MAAa,SAAU,SAAQ,cAAI;IAC/B;QACI,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,cAAI,EAAE,CAAC;IAC3B,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,IAAI;QACd,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACjB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,cAAI,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI;QAC7B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IACvC,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI;QACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI;QACjB,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACnF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IACjC,CAAC;CACJ;AA3BD,8BA2BC;AACD,qCAAqC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SynchronousLock = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
4
|
+
const Transaction_js_1 = require("./../Transaction.cjs");
|
|
5
|
+
const Lock_js_1 = require("./Lock.cjs");
|
|
6
6
|
const logging_1 = require("@decaf-ts/logging");
|
|
7
7
|
/**
|
|
8
8
|
* @summary Simple Synchronous Lock implementation
|
|
@@ -19,7 +19,7 @@ const logging_1 = require("@decaf-ts/logging");
|
|
|
19
19
|
class SynchronousLock extends logging_1.LoggedClass {
|
|
20
20
|
get log() {
|
|
21
21
|
if (!this["_log"]) {
|
|
22
|
-
this["_log"] =
|
|
22
|
+
this["_log"] = Transaction_js_1.Transaction["log"].for(this);
|
|
23
23
|
}
|
|
24
24
|
return this["_log"];
|
|
25
25
|
}
|
|
@@ -37,7 +37,7 @@ class SynchronousLock extends logging_1.LoggedClass {
|
|
|
37
37
|
this.pendingTransactions = [];
|
|
38
38
|
this.currentTransaction = undefined;
|
|
39
39
|
this.loggerCache = new Map();
|
|
40
|
-
this.lock = new
|
|
40
|
+
this.lock = new Lock_js_1.Lock();
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
43
43
|
* @summary Submits a transaction to be processed
|
|
@@ -132,4 +132,5 @@ class SynchronousLock extends logging_1.LoggedClass {
|
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
134
|
exports.SynchronousLock = SynchronousLock;
|
|
135
|
+
//# sourceMappingURL=SynchronousLock.js.map
|
|
135
136
|
//# sourceMappingURL=SynchronousLock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SynchronousLock.js","sourceRoot":"","sources":["SynchronousLock.js"],"names":[],"mappings":"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"}
|
package/lib/cjs/locks/index.cjs
CHANGED
|
@@ -1,9 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @description Transaction lock implementations module
|
|
4
|
-
* @summary Contains implementations of the TransactionLock interface, providing different concurrency control strategies for transactions
|
|
5
|
-
* @module transactions/locks
|
|
6
|
-
*/
|
|
7
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
3
|
if (k2 === undefined) k2 = k;
|
|
9
4
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -19,7 +14,13 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
19
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
15
|
};
|
|
21
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
/**
|
|
18
|
+
* @description Transaction lock implementations module
|
|
19
|
+
* @summary Contains implementations of the TransactionLock interface, providing different concurrency control strategies for transactions
|
|
20
|
+
* @module transactions/locks
|
|
21
|
+
*/
|
|
22
22
|
__exportStar(require("./Lock.cjs"), exports);
|
|
23
23
|
__exportStar(require("./MultiLock.cjs"), exports);
|
|
24
24
|
__exportStar(require("./SynchronousLock.cjs"), exports);
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
25
26
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,4CAA0B;AAC1B,iDAA+B;AAC/B,uDAAqC;AACrC,iCAAiC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Metadata.js","sourceRoot":"","sources":["Metadata.js"],"names":[],"mappings":";;AAAA,gCAA8B;AAC9B,oCAAoC"}
|
|
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./Metadata.cjs"), exports);
|
|
18
18
|
__exportStar(require("./overrides.cjs"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,iDAA+B;AAC/B,iCAAiC"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const decoration_1 = require("@decaf-ts/decoration");
|
|
4
|
-
const
|
|
4
|
+
const constants_js_1 = require("./../constants.cjs");
|
|
5
5
|
decoration_1.Metadata.transactionals = function (obj) {
|
|
6
|
-
const meta = decoration_1.Metadata.get(obj,
|
|
6
|
+
const meta = decoration_1.Metadata.get(obj, constants_js_1.TransactionalKeys.TRANSACTIONAL);
|
|
7
7
|
if (!meta)
|
|
8
8
|
return [];
|
|
9
9
|
return Object.keys(meta);
|
|
10
10
|
};
|
|
11
11
|
decoration_1.Metadata.isTransactional = function (obj) {
|
|
12
|
-
return !!decoration_1.Metadata.get(obj,
|
|
12
|
+
return !!decoration_1.Metadata.get(obj, constants_js_1.TransactionalKeys.TRANSACTIONAL);
|
|
13
13
|
};
|
|
14
|
+
//# sourceMappingURL=overrides.js.map
|
|
14
15
|
//# sourceMappingURL=overrides.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overrides.js","sourceRoot":"","sources":["overrides.js"],"names":[],"mappings":";;AAAA,qDAAgD;AAChD,oDAAsD;AACtD,qBAAQ,CAAC,cAAc,GAAG,UAAU,GAAG;IACnC,MAAM,IAAI,GAAG,qBAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,gCAAiB,CAAC,aAAa,CAAC,CAAC;IAChE,IAAI,CAAC,IAAI;QACL,OAAO,EAAE,CAAC;IACd,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC,CAAC;AACF,qBAAQ,CAAC,eAAe,GAAG,UAAU,GAAG;IACpC,OAAO,CAAC,CAAC,qBAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,gCAAiB,CAAC,aAAa,CAAC,CAAC;AAChE,CAAC,CAAC;AACF,qCAAqC"}
|
package/lib/cjs/types.cjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["types.js"],"names":[],"mappings":";;AACA,EAAE;AACF,MAAM;AACN,8EAA8E;AAC9E,4JAA4J;AAC5J,kCAAkC;AAClC,0EAA0E;AAC1E,4EAA4E;AAC5E,sFAAsF;AACtF,mCAAmC;AACnC,MAAM;AACN,8EAA8E;AAC9E,iCAAiC"}
|
package/lib/esm/index.js
CHANGED
|
@@ -18,7 +18,7 @@ export * from "./types.js";
|
|
|
18
18
|
* @const VERSION
|
|
19
19
|
* @memberOf module:transactions
|
|
20
20
|
*/
|
|
21
|
-
export const VERSION = "0.
|
|
21
|
+
export const VERSION = "0.7.0";
|
|
22
22
|
export const PACKAGE_NAME = "@decaf-ts/transactional-decorators";
|
|
23
23
|
Metadata.registerLibrary(PACKAGE_NAME, VERSION);
|
|
24
24
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { TransactionLock } from "./interfaces/TransactionLock.cjs";
|
|
2
|
+
import "./overrides";
|
|
3
|
+
import { LoggedClass } from "@decaf-ts/logging";
|
|
4
|
+
type TransactionRunnable<R, C = unknown> = (this: C) => R | Promise<R>;
|
|
5
|
+
/**
|
|
6
|
+
* @description Core transaction management class
|
|
7
|
+
* @summary Manages transaction lifecycle, including creation, execution, and cleanup. Provides mechanisms for binding transactions to objects and methods, ensuring proper transaction context propagation.
|
|
8
|
+
* @param {string} source - The source/origin of the transaction (typically a class name)
|
|
9
|
+
* @param {string} [method] - The method name associated with the transaction
|
|
10
|
+
* @param {function(): any} [action] - The function to execute within the transaction
|
|
11
|
+
* @param {any[]} [metadata] - Additional metadata to associate with the transaction
|
|
12
|
+
* @class Transaction
|
|
13
|
+
* @example
|
|
14
|
+
* // Creating and submitting a transaction
|
|
15
|
+
* const transaction = new Transaction(
|
|
16
|
+
* 'UserService',
|
|
17
|
+
* 'createUser',
|
|
18
|
+
* async () => {
|
|
19
|
+
* // Transaction logic here
|
|
20
|
+
* await db.insert('users', { name: 'John' });
|
|
21
|
+
* }
|
|
22
|
+
* );
|
|
23
|
+
* Transaction.submit(transaction);
|
|
24
|
+
*
|
|
25
|
+
* // Using the transactional decorator
|
|
26
|
+
* class UserService {
|
|
27
|
+
* @transactional()
|
|
28
|
+
* async createUser(data) {
|
|
29
|
+
* // Method will be executed within a transaction
|
|
30
|
+
* return await db.insert('users', data);
|
|
31
|
+
* }
|
|
32
|
+
* }
|
|
33
|
+
* @mermaid
|
|
34
|
+
* sequenceDiagram
|
|
35
|
+
* participant C as Client Code
|
|
36
|
+
* participant T as Transaction
|
|
37
|
+
* participant L as TransactionLock
|
|
38
|
+
* participant O as Original Method
|
|
39
|
+
*
|
|
40
|
+
* C->>T: new Transaction(source, method, action)
|
|
41
|
+
* C->>T: Transaction.submit(transaction)
|
|
42
|
+
* T->>L: submit(transaction)
|
|
43
|
+
* L->>T: fire()
|
|
44
|
+
* T->>O: Execute action()
|
|
45
|
+
* O-->>T: Return result/error
|
|
46
|
+
* T->>L: release(error?)
|
|
47
|
+
* L-->>C: Return result/error
|
|
48
|
+
*/
|
|
49
|
+
export declare class Transaction<R> extends LoggedClass {
|
|
50
|
+
static debug: boolean;
|
|
51
|
+
static globalTimeout: number;
|
|
52
|
+
private static readonly metadataCache;
|
|
53
|
+
private static log;
|
|
54
|
+
get log(): any;
|
|
55
|
+
readonly id: number;
|
|
56
|
+
protected action?: () => Promise<R>;
|
|
57
|
+
readonly method?: string;
|
|
58
|
+
readonly source?: string;
|
|
59
|
+
readonly logs: string[];
|
|
60
|
+
private readonly metadata?;
|
|
61
|
+
private readonly completion;
|
|
62
|
+
private resolveCompletion?;
|
|
63
|
+
private rejectCompletion?;
|
|
64
|
+
private initialFireDispatched;
|
|
65
|
+
private released;
|
|
66
|
+
private static lock;
|
|
67
|
+
private static readonly contexts;
|
|
68
|
+
constructor(source: string, method?: string, action?: () => Promise<R>, metadata?: any[]);
|
|
69
|
+
/**
|
|
70
|
+
* @description Queues a transaction for execution
|
|
71
|
+
* @summary Pushes a transaction to the queue and waits for its resolution. Creates a new transaction with the provided issuer and callback method, then submits it to the transaction lock.
|
|
72
|
+
* @param {any} issuer - Any class instance that will be used as 'this' when calling the callbackMethod
|
|
73
|
+
* @param {Function} method - function containing the transaction logic, will be called with the issuer as 'this'
|
|
74
|
+
* @param {any[]} args - Arguments to pass to the method. Last one must be the callback function
|
|
75
|
+
* @return {void}
|
|
76
|
+
*/
|
|
77
|
+
static push<R>(issuer: any, method: (...argzz: any[]) => Promise<R>, ...args: any[]): Promise<R>;
|
|
78
|
+
static run<R, C = unknown>(runnable: TransactionRunnable<R, C>, metadata?: any[]): Promise<R>;
|
|
79
|
+
static run<R, C = unknown>(context: C, runnable: TransactionRunnable<R, C>, metadata?: any[]): Promise<R>;
|
|
80
|
+
/**
|
|
81
|
+
* @description Configures the transaction lock implementation
|
|
82
|
+
* @summary Sets the lock implementation to be used for transaction management, allowing customization of the transaction behavior
|
|
83
|
+
* @param {TransactionLock} lock - The lock implementation to use for managing transactions
|
|
84
|
+
* @return {void}
|
|
85
|
+
*/
|
|
86
|
+
static setLock(lock: TransactionLock): void;
|
|
87
|
+
/**
|
|
88
|
+
* @description Retrieves the current transaction lock
|
|
89
|
+
* @summary Gets the current transaction lock instance, creating a default SyncronousLock if none exists
|
|
90
|
+
* @return {TransactionLock} The current transaction lock implementation
|
|
91
|
+
*/
|
|
92
|
+
static getLock(): TransactionLock;
|
|
93
|
+
/**
|
|
94
|
+
* @description Submits a transaction for processing
|
|
95
|
+
* @summary Submits a transaction to the current transaction lock for processing and execution
|
|
96
|
+
* @param {Transaction} transaction - The transaction to submit for processing
|
|
97
|
+
* @return {void}
|
|
98
|
+
*/
|
|
99
|
+
static submit<R>(transaction: Transaction<R>): Promise<R>;
|
|
100
|
+
/**
|
|
101
|
+
* @description Releases the transaction lock
|
|
102
|
+
* @summary Releases the current transaction lock, optionally with an error, allowing the next transaction to proceed
|
|
103
|
+
* @param {Error} [err] - Optional error that occurred during transaction execution
|
|
104
|
+
* @return {Promise<void>} A promise that resolves when the lock has been released
|
|
105
|
+
*/
|
|
106
|
+
static release(err?: Error): Promise<void>;
|
|
107
|
+
/**
|
|
108
|
+
* @description Releases the transaction instance once
|
|
109
|
+
* @summary Ensures the underlying lock is released at most a single time for the transaction
|
|
110
|
+
* @param {Error} [err] - Optional error to propagate to the lock implementation
|
|
111
|
+
* @return {Promise<void>} Resolves once the lock release call finishes or immediately when already released
|
|
112
|
+
*/
|
|
113
|
+
release(err?: Error): Promise<void>;
|
|
114
|
+
/**
|
|
115
|
+
* @description Retrieves transaction metadata
|
|
116
|
+
* @summary Returns a copy of the metadata associated with this transaction, ensuring the original metadata remains unmodified
|
|
117
|
+
* @return {any[] | undefined} A copy of the transaction metadata or undefined if no metadata exists
|
|
118
|
+
*/
|
|
119
|
+
getMetadata(): any[] | undefined;
|
|
120
|
+
private static getTransactionalMetadata;
|
|
121
|
+
/**
|
|
122
|
+
* @description Links a new transaction to the current one
|
|
123
|
+
* @summary Binds a new transaction operation to the current transaction, transferring logs and binding methods to maintain transaction context
|
|
124
|
+
* @param {Transaction} nextTransaction - The new transaction to bind to the current one
|
|
125
|
+
* @return {void}
|
|
126
|
+
*/
|
|
127
|
+
bindTransaction(nextTransaction: Transaction<any>): void;
|
|
128
|
+
/**
|
|
129
|
+
* @description Binds an object to the current transaction context
|
|
130
|
+
* @summary Binds a transactional decorated object to the transaction by ensuring all transactional methods automatically receive the current transaction as their first argument
|
|
131
|
+
* @param {any} obj - The object to bind to the transaction
|
|
132
|
+
* @return {any} The bound object with transaction-aware method wrappers
|
|
133
|
+
*/
|
|
134
|
+
bindToTransaction(obj: any): any;
|
|
135
|
+
/**
|
|
136
|
+
* @description Applies the global timeout to the provided Promise, if configured
|
|
137
|
+
* @param {Promise<R>} execution - Transaction execution promise
|
|
138
|
+
* @return {Promise<R>} Promise that respects the configured global timeout
|
|
139
|
+
* @private
|
|
140
|
+
*/
|
|
141
|
+
private applyGlobalTimeout;
|
|
142
|
+
/**
|
|
143
|
+
* @description Executes the transaction action
|
|
144
|
+
* @summary Fires the transaction by executing its associated action function, throwing an error if no action is defined
|
|
145
|
+
* @return {any} The result of the transaction action
|
|
146
|
+
*/
|
|
147
|
+
fire(): Promise<R>;
|
|
148
|
+
/**
|
|
149
|
+
* @description Provides a string representation of the transaction
|
|
150
|
+
* @summary Overrides the default toString method to provide a formatted string representation of the transaction, optionally including the transaction ID and log
|
|
151
|
+
* @param {boolean} [withId=true] - Whether to include the transaction ID in the output
|
|
152
|
+
* @param {boolean} [withLog=false] - Whether to include the transaction log in the output
|
|
153
|
+
* @return {string} A string representation of the transaction
|
|
154
|
+
*/
|
|
155
|
+
toString(withId?: boolean, withLog?: boolean): string;
|
|
156
|
+
static contextTransaction(context: any): Transaction<any> | undefined;
|
|
157
|
+
wait(): Promise<R>;
|
|
158
|
+
private static describeTarget;
|
|
159
|
+
}
|
|
160
|
+
export {};
|