nestjs-typeorm3-kit 0.1.7 → 0.2.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.
Files changed (120) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +803 -162
  3. package/dist/common/decorator/index.d.ts.map +1 -1
  4. package/dist/common/decorator/index.js +1 -5
  5. package/dist/common/decorator/index.js.map +1 -1
  6. package/dist/controller/decorator/index.d.ts.map +1 -1
  7. package/dist/controller/decorator/index.js +66 -117
  8. package/dist/controller/decorator/index.js.map +1 -1
  9. package/dist/helpers/index.d.ts +4 -0
  10. package/dist/helpers/index.d.ts.map +1 -1
  11. package/dist/helpers/index.js +81 -11
  12. package/dist/helpers/index.js.map +1 -1
  13. package/dist/module/decorator/index.d.ts +1 -1
  14. package/dist/module/decorator/index.d.ts.map +1 -1
  15. package/dist/module/decorator/index.js +188 -19
  16. package/dist/module/decorator/index.js.map +1 -1
  17. package/dist/repository/config/constants.d.ts +1 -0
  18. package/dist/repository/config/constants.d.ts.map +1 -1
  19. package/dist/repository/config/constants.js +2 -1
  20. package/dist/repository/config/constants.js.map +1 -1
  21. package/dist/repository/config/types.d.ts +2 -2
  22. package/dist/repository/config/types.d.ts.map +1 -1
  23. package/dist/repository/config/types.js +34 -5
  24. package/dist/repository/config/types.js.map +1 -1
  25. package/dist/repository/config/utils.d.ts +1 -1
  26. package/dist/repository/config/utils.d.ts.map +1 -1
  27. package/dist/repository/config/utils.js +12 -13
  28. package/dist/repository/config/utils.js.map +1 -1
  29. package/dist/repository/decorator/index.d.ts +2 -2
  30. package/dist/repository/decorator/index.d.ts.map +1 -1
  31. package/dist/repository/decorator/index.js +1 -1
  32. package/dist/repository/decorator/index.js.map +1 -1
  33. package/dist/repository/module/index.d.ts +2 -5
  34. package/dist/repository/module/index.d.ts.map +1 -1
  35. package/dist/repository/module/index.js +23 -87
  36. package/dist/repository/module/index.js.map +1 -1
  37. package/dist/transaction/decorator/index.d.ts +5 -3
  38. package/dist/transaction/decorator/index.d.ts.map +1 -1
  39. package/dist/transaction/decorator/index.js +20 -19
  40. package/dist/transaction/decorator/index.js.map +1 -1
  41. package/dist/transaction/setup/index.d.ts +8 -3
  42. package/dist/transaction/setup/index.d.ts.map +1 -1
  43. package/dist/transaction/setup/index.js +19 -5
  44. package/dist/transaction/setup/index.js.map +1 -1
  45. package/dist/validate/decorator/index.d.ts.map +1 -1
  46. package/dist/validate/decorator/index.js +6 -4
  47. package/dist/validate/decorator/index.js.map +1 -1
  48. package/dist/vendor/transactional/common/constants.d.ts +6 -0
  49. package/dist/vendor/transactional/common/constants.d.ts.map +1 -0
  50. package/dist/vendor/transactional/common/constants.js +9 -0
  51. package/dist/vendor/transactional/common/constants.js.map +1 -0
  52. package/dist/vendor/transactional/common/index.d.ts +26 -0
  53. package/dist/vendor/transactional/common/index.d.ts.map +1 -0
  54. package/dist/vendor/transactional/common/index.js +136 -0
  55. package/dist/vendor/transactional/common/index.js.map +1 -0
  56. package/dist/vendor/transactional/decorators/transactional.d.ts +3 -0
  57. package/dist/vendor/transactional/decorators/transactional.d.ts.map +1 -0
  58. package/dist/vendor/transactional/decorators/transactional.js +20 -0
  59. package/dist/vendor/transactional/decorators/transactional.js.map +1 -0
  60. package/dist/vendor/transactional/enums/isolation-level.d.ts +7 -0
  61. package/dist/vendor/transactional/enums/isolation-level.d.ts.map +1 -0
  62. package/dist/vendor/transactional/enums/isolation-level.js +11 -0
  63. package/dist/vendor/transactional/enums/isolation-level.js.map +1 -0
  64. package/dist/vendor/transactional/enums/propagation.d.ts +10 -0
  65. package/dist/vendor/transactional/enums/propagation.d.ts.map +1 -0
  66. package/dist/vendor/transactional/enums/propagation.js +14 -0
  67. package/dist/vendor/transactional/enums/propagation.js.map +1 -0
  68. package/dist/vendor/transactional/enums/storage-driver.d.ts +5 -0
  69. package/dist/vendor/transactional/enums/storage-driver.d.ts.map +1 -0
  70. package/dist/vendor/transactional/enums/storage-driver.js +9 -0
  71. package/dist/vendor/transactional/enums/storage-driver.js.map +1 -0
  72. package/dist/vendor/transactional/errors/transactional.d.ts +4 -0
  73. package/dist/vendor/transactional/errors/transactional.d.ts.map +1 -0
  74. package/dist/vendor/transactional/errors/transactional.js +11 -0
  75. package/dist/vendor/transactional/errors/transactional.js.map +1 -0
  76. package/dist/vendor/transactional/errors/typeorm-updated-patch.d.ts +5 -0
  77. package/dist/vendor/transactional/errors/typeorm-updated-patch.d.ts.map +1 -0
  78. package/dist/vendor/transactional/errors/typeorm-updated-patch.js +11 -0
  79. package/dist/vendor/transactional/errors/typeorm-updated-patch.js.map +1 -0
  80. package/dist/vendor/transactional/hooks/index.d.ts +11 -0
  81. package/dist/vendor/transactional/hooks/index.d.ts.map +1 -0
  82. package/dist/vendor/transactional/hooks/index.js +79 -0
  83. package/dist/vendor/transactional/hooks/index.js.map +1 -0
  84. package/dist/vendor/transactional/index.d.ts +10 -0
  85. package/dist/vendor/transactional/index.d.ts.map +1 -0
  86. package/dist/vendor/transactional/index.js +27 -0
  87. package/dist/vendor/transactional/index.js.map +1 -0
  88. package/dist/vendor/transactional/storage/driver/async-local-storage/index.d.ts +9 -0
  89. package/dist/vendor/transactional/storage/driver/async-local-storage/index.d.ts.map +1 -0
  90. package/dist/vendor/transactional/storage/driver/async-local-storage/index.js +25 -0
  91. package/dist/vendor/transactional/storage/driver/async-local-storage/index.js.map +1 -0
  92. package/dist/vendor/transactional/storage/driver/interface.d.ts +10 -0
  93. package/dist/vendor/transactional/storage/driver/interface.d.ts.map +1 -0
  94. package/dist/vendor/transactional/storage/driver/interface.js +3 -0
  95. package/dist/vendor/transactional/storage/driver/interface.js.map +1 -0
  96. package/dist/vendor/transactional/storage/index.d.ts +3 -0
  97. package/dist/vendor/transactional/storage/index.d.ts.map +1 -0
  98. package/dist/vendor/transactional/storage/index.js +6 -0
  99. package/dist/vendor/transactional/storage/index.js.map +1 -0
  100. package/dist/vendor/transactional/storage/storage.d.ts +7 -0
  101. package/dist/vendor/transactional/storage/storage.d.ts.map +1 -0
  102. package/dist/vendor/transactional/storage/storage.js +21 -0
  103. package/dist/vendor/transactional/storage/storage.js.map +1 -0
  104. package/dist/vendor/transactional/transactions/nested-scope.d.ts +12 -0
  105. package/dist/vendor/transactional/transactions/nested-scope.d.ts.map +1 -0
  106. package/dist/vendor/transactional/transactions/nested-scope.js +42 -0
  107. package/dist/vendor/transactional/transactions/nested-scope.js.map +1 -0
  108. package/dist/vendor/transactional/transactions/run-in-transaction.d.ts +3 -0
  109. package/dist/vendor/transactional/transactions/run-in-transaction.d.ts.map +1 -0
  110. package/dist/vendor/transactional/transactions/run-in-transaction.js +9 -0
  111. package/dist/vendor/transactional/transactions/run-in-transaction.js.map +1 -0
  112. package/dist/vendor/transactional/transactions/wrap-in-transaction.d.ts +11 -0
  113. package/dist/vendor/transactional/transactions/wrap-in-transaction.d.ts.map +1 -0
  114. package/dist/vendor/transactional/transactions/wrap-in-transaction.js +109 -0
  115. package/dist/vendor/transactional/transactions/wrap-in-transaction.js.map +1 -0
  116. package/dist/vendor/transactional/utils/index.d.ts +3 -0
  117. package/dist/vendor/transactional/utils/index.d.ts.map +1 -0
  118. package/dist/vendor/transactional/utils/index.js +12 -0
  119. package/dist/vendor/transactional/utils/index.js.map +1 -0
  120. package/package.json +28 -25
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IsolationLevel = void 0;
4
+ var IsolationLevel;
5
+ (function (IsolationLevel) {
6
+ IsolationLevel["READ_UNCOMMITTED"] = "READ UNCOMMITTED";
7
+ IsolationLevel["READ_COMMITTED"] = "READ COMMITTED";
8
+ IsolationLevel["REPEATABLE_READ"] = "REPEATABLE READ";
9
+ IsolationLevel["SERIALIZABLE"] = "SERIALIZABLE";
10
+ })(IsolationLevel || (exports.IsolationLevel = IsolationLevel = {}));
11
+ //# sourceMappingURL=isolation-level.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isolation-level.js","sourceRoot":"","sources":["../../../../src/vendor/transactional/enums/isolation-level.ts"],"names":[],"mappings":";;;AAGA,IAAY,cAiBX;AAjBD,WAAY,cAAc;IAIxB,uDAAqC,CAAA;IAIrC,mDAAiC,CAAA;IAIjC,qDAAmC,CAAA;IAInC,+CAA6B,CAAA;AAC/B,CAAC,EAjBW,cAAc,8BAAd,cAAc,QAiBzB"}
@@ -0,0 +1,10 @@
1
+ export declare enum Propagation {
2
+ MANDATORY = "MANDATORY",
3
+ NESTED = "NESTED",
4
+ NEVER = "NEVER",
5
+ NOT_SUPPORTED = "NOT_SUPPORTED",
6
+ REQUIRED = "REQUIRED",
7
+ REQUIRES_NEW = "REQUIRES_NEW",
8
+ SUPPORTS = "SUPPORTS"
9
+ }
10
+ //# sourceMappingURL=propagation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"propagation.d.ts","sourceRoot":"","sources":["../../../../src/vendor/transactional/enums/propagation.ts"],"names":[],"mappings":"AAGA,oBAAY,WAAW;IAIrB,SAAS,cAAc;IAIvB,MAAM,WAAW;IAIjB,KAAK,UAAU;IAIf,aAAa,kBAAkB;IAI/B,QAAQ,aAAa;IAIrB,YAAY,iBAAiB;IAI7B,QAAQ,aAAa;CACtB"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Propagation = void 0;
4
+ var Propagation;
5
+ (function (Propagation) {
6
+ Propagation["MANDATORY"] = "MANDATORY";
7
+ Propagation["NESTED"] = "NESTED";
8
+ Propagation["NEVER"] = "NEVER";
9
+ Propagation["NOT_SUPPORTED"] = "NOT_SUPPORTED";
10
+ Propagation["REQUIRED"] = "REQUIRED";
11
+ Propagation["REQUIRES_NEW"] = "REQUIRES_NEW";
12
+ Propagation["SUPPORTS"] = "SUPPORTS";
13
+ })(Propagation || (exports.Propagation = Propagation = {}));
14
+ //# sourceMappingURL=propagation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"propagation.js","sourceRoot":"","sources":["../../../../src/vendor/transactional/enums/propagation.ts"],"names":[],"mappings":";;;AAGA,IAAY,WA6BX;AA7BD,WAAY,WAAW;IAIrB,sCAAuB,CAAA;IAIvB,gCAAiB,CAAA;IAIjB,8BAAe,CAAA;IAIf,8CAA+B,CAAA;IAI/B,oCAAqB,CAAA;IAIrB,4CAA6B,CAAA;IAI7B,oCAAqB,CAAA;AACvB,CAAC,EA7BW,WAAW,2BAAX,WAAW,QA6BtB"}
@@ -0,0 +1,5 @@
1
+ export declare enum StorageDriver {
2
+ AUTO = "AUTO",
3
+ ASYNC_LOCAL_STORAGE = "ASYNC_LOCAL_STORAGE"
4
+ }
5
+ //# sourceMappingURL=storage-driver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-driver.d.ts","sourceRoot":"","sources":["../../../../src/vendor/transactional/enums/storage-driver.ts"],"names":[],"mappings":"AAQA,oBAAY,aAAa;IAKvB,IAAI,SAAS;IAKb,mBAAmB,wBAAwB;CAC5C"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StorageDriver = void 0;
4
+ var StorageDriver;
5
+ (function (StorageDriver) {
6
+ StorageDriver["AUTO"] = "AUTO";
7
+ StorageDriver["ASYNC_LOCAL_STORAGE"] = "ASYNC_LOCAL_STORAGE";
8
+ })(StorageDriver || (exports.StorageDriver = StorageDriver = {}));
9
+ //# sourceMappingURL=storage-driver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-driver.js","sourceRoot":"","sources":["../../../../src/vendor/transactional/enums/storage-driver.ts"],"names":[],"mappings":";;;AAQA,IAAY,aAWX;AAXD,WAAY,aAAa;IAKvB,8BAAa,CAAA;IAKb,4DAA2C,CAAA;AAC7C,CAAC,EAXW,aAAa,6BAAb,aAAa,QAWxB"}
@@ -0,0 +1,4 @@
1
+ export declare class TransactionalError extends Error {
2
+ name: string;
3
+ }
4
+ //# sourceMappingURL=transactional.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactional.d.ts","sourceRoot":"","sources":["../../../../src/vendor/transactional/errors/transactional.ts"],"names":[],"mappings":"AAAA,qBAAa,kBAAmB,SAAQ,KAAK;IACpC,IAAI,SAAwB;CACpC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransactionalError = void 0;
4
+ class TransactionalError extends Error {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.name = 'TransactionalError';
8
+ }
9
+ }
10
+ exports.TransactionalError = TransactionalError;
11
+ //# sourceMappingURL=transactional.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactional.js","sourceRoot":"","sources":["../../../../src/vendor/transactional/errors/transactional.ts"],"names":[],"mappings":";;;AAAA,MAAa,kBAAmB,SAAQ,KAAK;IAA7C;;QACS,SAAI,GAAG,oBAAoB,CAAC;IACrC,CAAC;CAAA;AAFD,gDAEC"}
@@ -0,0 +1,5 @@
1
+ export declare class TypeOrmUpdatedPatchError extends Error {
2
+ name: string;
3
+ constructor();
4
+ }
5
+ //# sourceMappingURL=typeorm-updated-patch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeorm-updated-patch.d.ts","sourceRoot":"","sources":["../../../../src/vendor/transactional/errors/typeorm-updated-patch.ts"],"names":[],"mappings":"AAAA,qBAAa,wBAAyB,SAAQ,KAAK;IAC1C,IAAI,SAA8B;;CAO1C"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TypeOrmUpdatedPatchError = void 0;
4
+ class TypeOrmUpdatedPatchError extends Error {
5
+ constructor() {
6
+ super('It seems that TypeORM was updated. Patching "DataSource" is not safe. If you want to try to use the library, set the "patch" flag in the function "addTransactionalDataSource" to "false".');
7
+ this.name = 'TypeOrmUpdatedPatchError';
8
+ }
9
+ }
10
+ exports.TypeOrmUpdatedPatchError = TypeOrmUpdatedPatchError;
11
+ //# sourceMappingURL=typeorm-updated-patch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeorm-updated-patch.js","sourceRoot":"","sources":["../../../../src/vendor/transactional/errors/typeorm-updated-patch.ts"],"names":[],"mappings":";;;AAAA,MAAa,wBAAyB,SAAQ,KAAK;IAGjD;QACE,KAAK,CACH,4LAA4L,CAC7L,CAAC;QALG,SAAI,GAAG,0BAA0B,CAAC;IAMzC,CAAC;CACF;AARD,4DAQC"}
@@ -0,0 +1,11 @@
1
+ import { EventEmitter } from 'events';
2
+ import { DataSourceName } from '../common';
3
+ import { StorageDriver } from '../storage/driver/interface';
4
+ export declare const getTransactionalContextHook: () => EventEmitter<[never]>;
5
+ export declare const runAndTriggerHooks: (hook: EventEmitter, cb: () => unknown, parentHook?: EventEmitter) => Promise<unknown>;
6
+ export declare const createEventEmitterInNewContext: (context: StorageDriver) => EventEmitter<[never]>;
7
+ export declare const runInNewHookContext: (context: StorageDriver, cb: () => unknown, parentHook?: EventEmitter, dataSourceName?: DataSourceName) => Promise<unknown>;
8
+ export declare const runOnTransactionCommit: (cb: () => void) => void;
9
+ export declare const runOnTransactionRollback: (cb: (e: Error) => void) => void;
10
+ export declare const runOnTransactionComplete: (cb: (e: Error | undefined) => void) => void;
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/vendor/transactional/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAML,cAAc,EACf,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,eAAO,MAAM,2BAA2B,6BASvC,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,MAAM,YAAY,EAClB,IAAI,MAAM,OAAO,EACjB,aAAa,YAAY,qBAqC1B,CAAC;AAEF,eAAO,MAAM,8BAA8B,GAAI,SAAS,aAAa,0BAMpE,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,SAAS,aAAa,EACtB,IAAI,MAAM,OAAO,EACjB,aAAa,YAAY,EACzB,iBAAiB,cAAc,qBAYhC,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,IAAI,MAAM,IAAI,SAEpD,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,IAAI,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,SAE9D,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,SAAS,KAAK,IAAI,SAE1E,CAAC"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runOnTransactionComplete = exports.runOnTransactionRollback = exports.runOnTransactionCommit = exports.runInNewHookContext = exports.createEventEmitterInNewContext = exports.runAndTriggerHooks = exports.getTransactionalContextHook = void 0;
4
+ const events_1 = require("events");
5
+ const common_1 = require("../common");
6
+ const getTransactionalContextHook = () => {
7
+ const context = (0, common_1.getTransactionalContext)();
8
+ const emitter = (0, common_1.getHookInContext)(context);
9
+ if (!emitter) {
10
+ throw new Error('No hook manager found in context. Are you using @Transactional()?');
11
+ }
12
+ return emitter;
13
+ };
14
+ exports.getTransactionalContextHook = getTransactionalContextHook;
15
+ const runAndTriggerHooks = async (hook, cb, parentHook) => {
16
+ try {
17
+ const result = await Promise.resolve(cb());
18
+ if (parentHook) {
19
+ parentHook.once('commit', () => {
20
+ hook.emit('commit');
21
+ hook.emit('end', undefined);
22
+ hook.removeAllListeners();
23
+ });
24
+ parentHook.once('rollback', (err) => {
25
+ hook.emit('rollback', err);
26
+ hook.emit('end', err);
27
+ hook.removeAllListeners();
28
+ });
29
+ }
30
+ else {
31
+ setImmediate(() => {
32
+ hook.emit('commit');
33
+ hook.emit('end', undefined);
34
+ hook.removeAllListeners();
35
+ });
36
+ }
37
+ return result;
38
+ }
39
+ catch (err) {
40
+ setImmediate(() => {
41
+ hook.emit('rollback', err);
42
+ hook.emit('end', err);
43
+ hook.removeAllListeners();
44
+ });
45
+ throw err;
46
+ }
47
+ };
48
+ exports.runAndTriggerHooks = runAndTriggerHooks;
49
+ const createEventEmitterInNewContext = (context) => {
50
+ const options = (0, common_1.getTransactionalOptions)();
51
+ const emitter = new events_1.EventEmitter();
52
+ emitter.setMaxListeners(options.maxHookHandlers);
53
+ return emitter;
54
+ };
55
+ exports.createEventEmitterInNewContext = createEventEmitterInNewContext;
56
+ const runInNewHookContext = async (context, cb, parentHook, dataSourceName) => {
57
+ const hook = (0, exports.createEventEmitterInNewContext)(context);
58
+ return await context.run(() => {
59
+ (0, common_1.setHookInContext)(context, hook);
60
+ if (dataSourceName !== undefined) {
61
+ (0, common_1.setHookByDataSourceName)(context, dataSourceName, hook);
62
+ }
63
+ return (0, exports.runAndTriggerHooks)(hook, cb, parentHook);
64
+ });
65
+ };
66
+ exports.runInNewHookContext = runInNewHookContext;
67
+ const runOnTransactionCommit = (cb) => {
68
+ (0, exports.getTransactionalContextHook)().once('commit', cb);
69
+ };
70
+ exports.runOnTransactionCommit = runOnTransactionCommit;
71
+ const runOnTransactionRollback = (cb) => {
72
+ (0, exports.getTransactionalContextHook)().once('rollback', cb);
73
+ };
74
+ exports.runOnTransactionRollback = runOnTransactionRollback;
75
+ const runOnTransactionComplete = (cb) => {
76
+ (0, exports.getTransactionalContextHook)().once('end', cb);
77
+ };
78
+ exports.runOnTransactionComplete = runOnTransactionComplete;
79
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/vendor/transactional/hooks/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export { initializeTransactionalContext, addTransactionalDataSource, getDataSourceByName, deleteDataSourceByName, } from './common';
2
+ export { runOnTransactionCommit, runOnTransactionRollback, runOnTransactionComplete, } from './hooks';
3
+ export { Transactional } from './decorators/transactional';
4
+ export { StorageDriver } from './enums/storage-driver';
5
+ export { Propagation } from './enums/propagation';
6
+ export { IsolationLevel } from './enums/isolation-level';
7
+ export { runInTransaction } from './transactions/run-in-transaction';
8
+ export { wrapInTransaction, WrapInTransactionOptions } from './transactions/wrap-in-transaction';
9
+ export { TransactionalError } from './errors/transactional';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vendor/transactional/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AACjG,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransactionalError = exports.wrapInTransaction = exports.runInTransaction = exports.IsolationLevel = exports.Propagation = exports.StorageDriver = exports.Transactional = exports.runOnTransactionComplete = exports.runOnTransactionRollback = exports.runOnTransactionCommit = exports.deleteDataSourceByName = exports.getDataSourceByName = exports.addTransactionalDataSource = exports.initializeTransactionalContext = void 0;
4
+ var common_1 = require("./common");
5
+ Object.defineProperty(exports, "initializeTransactionalContext", { enumerable: true, get: function () { return common_1.initializeTransactionalContext; } });
6
+ Object.defineProperty(exports, "addTransactionalDataSource", { enumerable: true, get: function () { return common_1.addTransactionalDataSource; } });
7
+ Object.defineProperty(exports, "getDataSourceByName", { enumerable: true, get: function () { return common_1.getDataSourceByName; } });
8
+ Object.defineProperty(exports, "deleteDataSourceByName", { enumerable: true, get: function () { return common_1.deleteDataSourceByName; } });
9
+ var hooks_1 = require("./hooks");
10
+ Object.defineProperty(exports, "runOnTransactionCommit", { enumerable: true, get: function () { return hooks_1.runOnTransactionCommit; } });
11
+ Object.defineProperty(exports, "runOnTransactionRollback", { enumerable: true, get: function () { return hooks_1.runOnTransactionRollback; } });
12
+ Object.defineProperty(exports, "runOnTransactionComplete", { enumerable: true, get: function () { return hooks_1.runOnTransactionComplete; } });
13
+ var transactional_1 = require("./decorators/transactional");
14
+ Object.defineProperty(exports, "Transactional", { enumerable: true, get: function () { return transactional_1.Transactional; } });
15
+ var storage_driver_1 = require("./enums/storage-driver");
16
+ Object.defineProperty(exports, "StorageDriver", { enumerable: true, get: function () { return storage_driver_1.StorageDriver; } });
17
+ var propagation_1 = require("./enums/propagation");
18
+ Object.defineProperty(exports, "Propagation", { enumerable: true, get: function () { return propagation_1.Propagation; } });
19
+ var isolation_level_1 = require("./enums/isolation-level");
20
+ Object.defineProperty(exports, "IsolationLevel", { enumerable: true, get: function () { return isolation_level_1.IsolationLevel; } });
21
+ var run_in_transaction_1 = require("./transactions/run-in-transaction");
22
+ Object.defineProperty(exports, "runInTransaction", { enumerable: true, get: function () { return run_in_transaction_1.runInTransaction; } });
23
+ var wrap_in_transaction_1 = require("./transactions/wrap-in-transaction");
24
+ Object.defineProperty(exports, "wrapInTransaction", { enumerable: true, get: function () { return wrap_in_transaction_1.wrapInTransaction; } });
25
+ var transactional_2 = require("./errors/transactional");
26
+ Object.defineProperty(exports, "TransactionalError", { enumerable: true, get: function () { return transactional_2.TransactionalError; } });
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/vendor/transactional/index.ts"],"names":[],"mappings":";;;AAAA,mCAKkB;AAJhB,wHAAA,8BAA8B,OAAA;AAC9B,oHAAA,0BAA0B,OAAA;AAC1B,6GAAA,mBAAmB,OAAA;AACnB,gHAAA,sBAAsB,OAAA;AAExB,iCAIiB;AAHf,+GAAA,sBAAsB,OAAA;AACtB,iHAAA,wBAAwB,OAAA;AACxB,iHAAA,wBAAwB,OAAA;AAE1B,4DAA2D;AAAlD,8GAAA,aAAa,OAAA;AACtB,yDAAuD;AAA9C,+GAAA,aAAa,OAAA;AACtB,mDAAkD;AAAzC,0GAAA,WAAW,OAAA;AACpB,2DAAyD;AAAhD,iHAAA,cAAc,OAAA;AACvB,wEAAqE;AAA5D,sHAAA,gBAAgB,OAAA;AACzB,0EAAiG;AAAxF,wHAAA,iBAAiB,OAAA;AAC1B,wDAA4D;AAAnD,mHAAA,kBAAkB,OAAA"}
@@ -0,0 +1,9 @@
1
+ import { StorageKey, StorageValue, StorageDriver } from '../interface';
2
+ export declare class AsyncLocalStorageDriver implements StorageDriver {
3
+ private readonly context;
4
+ get active(): boolean;
5
+ get<T>(key: StorageKey): T;
6
+ set(key: StorageKey, value: StorageValue): void;
7
+ run<T>(cb: () => Promise<T>): Promise<T>;
8
+ }
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/vendor/transactional/storage/driver/async-local-storage/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAW,MAAM,cAAc,CAAC;AAEhF,qBAAa,uBAAwB,YAAW,aAAa;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAE5D,IAAI,MAAM,YAET;IAEM,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,GAAG,CAAC;IAI1B,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI;IAI/C,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAGhD"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AsyncLocalStorageDriver = void 0;
4
+ const async_hooks_1 = require("async_hooks");
5
+ class AsyncLocalStorageDriver {
6
+ constructor() {
7
+ this.context = new async_hooks_1.AsyncLocalStorage();
8
+ }
9
+ get active() {
10
+ return this.context.getStore() !== undefined;
11
+ }
12
+ get(key) {
13
+ var _a;
14
+ return (_a = this.context.getStore()) === null || _a === void 0 ? void 0 : _a.get(key);
15
+ }
16
+ set(key, value) {
17
+ var _a;
18
+ (_a = this.context.getStore()) === null || _a === void 0 ? void 0 : _a.set(key, value);
19
+ }
20
+ run(cb) {
21
+ return this.context.run(new Map(this.context.getStore()), cb);
22
+ }
23
+ }
24
+ exports.AsyncLocalStorageDriver = AsyncLocalStorageDriver;
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/vendor/transactional/storage/driver/async-local-storage/index.ts"],"names":[],"mappings":";;;AAAA,6CAAgD;AAIhD,MAAa,uBAAuB;IAApC;QACmB,YAAO,GAAG,IAAI,+BAAiB,EAAW,CAAC;IAiB9D,CAAC;IAfC,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,SAAS,CAAC;IAC/C,CAAC;IAEM,GAAG,CAAI,GAAe;;QAC3B,OAAO,MAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,0CAAE,GAAG,CAAC,GAAG,CAAM,CAAC;IAChD,CAAC;IAEM,GAAG,CAAC,GAAe,EAAE,KAAmB;;QAC7C,MAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,0CAAE,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;IAEM,GAAG,CAAI,EAAoB;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAChE,CAAC;CACF;AAlBD,0DAkBC"}
@@ -0,0 +1,10 @@
1
+ export type StorageKey = string;
2
+ export type StorageValue = unknown;
3
+ export type Storage = Map<StorageKey, StorageValue>;
4
+ export interface StorageDriver {
5
+ active: boolean;
6
+ get(key: StorageKey): StorageValue;
7
+ set(key: StorageKey, value: StorageValue): void;
8
+ run<T>(cb: () => Promise<T>): Promise<T>;
9
+ }
10
+ //# sourceMappingURL=interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../../../src/vendor/transactional/storage/driver/interface.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAChC,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC;AACnC,MAAM,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AAEpD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,YAAY,CAAC;IACnC,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAChD,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC1C"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../../../src/vendor/transactional/storage/driver/interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { Storage } from './storage';
2
+ export declare const storage: Storage;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/vendor/transactional/storage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,eAAO,MAAM,OAAO,SAAgB,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.storage = void 0;
4
+ const storage_1 = require("./storage");
5
+ exports.storage = new storage_1.Storage();
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/vendor/transactional/storage/index.ts"],"names":[],"mappings":";;;AAAA,uCAAoC;AAEvB,QAAA,OAAO,GAAG,IAAI,iBAAO,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { StorageDriver } from './driver/interface';
2
+ export declare class Storage {
3
+ private driver;
4
+ create(): StorageDriver;
5
+ get(): StorageDriver;
6
+ }
7
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../src/vendor/transactional/storage/storage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAA4B;IAEnC,MAAM;IAWN,GAAG;CASX"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Storage = void 0;
4
+ const async_local_storage_1 = require("./driver/async-local-storage");
5
+ class Storage {
6
+ create() {
7
+ if (this.driver) {
8
+ return this.driver;
9
+ }
10
+ this.driver = new async_local_storage_1.AsyncLocalStorageDriver();
11
+ return this.driver;
12
+ }
13
+ get() {
14
+ if (!this.driver) {
15
+ throw new Error('No storage driver defined in your app ... please call initializeTransactionalContext() before application start.');
16
+ }
17
+ return this.driver;
18
+ }
19
+ }
20
+ exports.Storage = Storage;
21
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../../src/vendor/transactional/storage/storage.ts"],"names":[],"mappings":";;;AAAA,sEAAuE;AAGvE,MAAa,OAAO;IAGX,MAAM;QACX,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAEhB,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,6CAAuB,EAAE,CAAC;QAE5C,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEM,GAAG;QACR,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,kHAAkH,CACnH,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AAvBD,0BAuBC"}
@@ -0,0 +1,12 @@
1
+ import type { EntityManager, QueryRunner } from 'typeorm';
2
+ import { DataSourceName } from '../common';
3
+ import type { StorageDriver } from '../storage/driver/interface';
4
+ export declare class NestedScope {
5
+ readonly queryRunner: QueryRunner | undefined;
6
+ private tail;
7
+ constructor(queryRunner: QueryRunner | undefined);
8
+ acquire(): Promise<() => void>;
9
+ }
10
+ export declare const setNestedScope: (context: StorageDriver, name: DataSourceName, entityManager: EntityManager) => void;
11
+ export declare const getNestedScope: (context: StorageDriver, name: DataSourceName, currentTransaction: EntityManager) => NestedScope;
12
+ //# sourceMappingURL=nested-scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nested-scope.d.ts","sourceRoot":"","sources":["../../../../src/vendor/transactional/transactions/nested-scope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAKjE,qBAAa,WAAW;IAGV,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS;IAFzD,OAAO,CAAC,IAAI,CAAoC;gBAE3B,WAAW,EAAE,WAAW,GAAG,SAAS;IAEnD,OAAO,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC;CAUrC;AAUD,eAAO,MAAM,cAAc,GACzB,SAAS,aAAa,EACtB,MAAM,cAAc,EACpB,eAAe,aAAa,SAG7B,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,SAAS,aAAa,EACtB,MAAM,cAAc,EACpB,oBAAoB,aAAa,KAChC,WAcF,CAAC"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getNestedScope = exports.setNestedScope = exports.NestedScope = void 0;
4
+ const constants_1 = require("../common/constants");
5
+ class NestedScope {
6
+ constructor(queryRunner) {
7
+ this.queryRunner = queryRunner;
8
+ this.tail = Promise.resolve();
9
+ }
10
+ async acquire() {
11
+ const previous = this.tail;
12
+ let release;
13
+ this.tail = new Promise((resolve) => {
14
+ release = resolve;
15
+ });
16
+ await previous;
17
+ return release;
18
+ }
19
+ }
20
+ exports.NestedScope = NestedScope;
21
+ const rootScopes = new WeakMap();
22
+ const scopeKey = (name) => constants_1.TYPEORM_DATA_SOURCE_NAME_PREFIX + name + '/nested-scope';
23
+ const setNestedScope = (context, name, entityManager) => {
24
+ context.set(scopeKey(name), new NestedScope(entityManager.queryRunner));
25
+ };
26
+ exports.setNestedScope = setNestedScope;
27
+ const getNestedScope = (context, name, currentTransaction) => {
28
+ const queryRunner = currentTransaction.queryRunner;
29
+ const scoped = context.get(scopeKey(name));
30
+ if (scoped && scoped.queryRunner === queryRunner)
31
+ return scoped;
32
+ if (!queryRunner)
33
+ return new NestedScope(undefined);
34
+ let root = rootScopes.get(queryRunner);
35
+ if (!root) {
36
+ root = new NestedScope(queryRunner);
37
+ rootScopes.set(queryRunner, root);
38
+ }
39
+ return root;
40
+ };
41
+ exports.getNestedScope = getNestedScope;
42
+ //# sourceMappingURL=nested-scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nested-scope.js","sourceRoot":"","sources":["../../../../src/vendor/transactional/transactions/nested-scope.ts"],"names":[],"mappings":";;;AAGA,mDAAsE;AAMtE,MAAa,WAAW;IAGtB,YAAqB,WAAoC;QAApC,gBAAW,GAAX,WAAW,CAAyB;QAFjD,SAAI,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAEY,CAAC;IAE7D,KAAK,CAAC,OAAO;QACX,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;QAC3B,IAAI,OAAoB,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACxC,OAAO,GAAG,OAAO,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,MAAM,QAAQ,CAAC;QAEf,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAfD,kCAeC;AAED,MAAM,UAAU,GAAG,IAAI,OAAO,EAA4B,CAAC;AAE3D,MAAM,QAAQ,GAAG,CAAC,IAAoB,EAAE,EAAE,CAAC,2CAA+B,GAAG,IAAI,GAAG,eAAe,CAAC;AAM7F,MAAM,cAAc,GAAG,CAC5B,OAAsB,EACtB,IAAoB,EACpB,aAA4B,EAC5B,EAAE;IACF,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;AAC1E,CAAC,CAAC;AANW,QAAA,cAAc,kBAMzB;AAEK,MAAM,cAAc,GAAG,CAC5B,OAAsB,EACtB,IAAoB,EACpB,kBAAiC,EACpB,EAAE;IACf,MAAM,WAAW,GAAG,kBAAkB,CAAC,WAAW,CAAC;IACnD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAA4B,CAAC;IACtE,IAAI,MAAM,IAAI,MAAM,CAAC,WAAW,KAAK,WAAW;QAAE,OAAO,MAAM,CAAC;IAEhE,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC;IAEpD,IAAI,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACvC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,GAAG,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;QACpC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAlBW,QAAA,cAAc,kBAkBzB"}
@@ -0,0 +1,3 @@
1
+ import { WrapInTransactionOptions } from './wrap-in-transaction';
2
+ export declare const runInTransaction: <Func extends (this: unknown) => ReturnType<Func>>(fn: Func, options?: WrapInTransactionOptions) => ReturnType<Func>;
3
+ //# sourceMappingURL=run-in-transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-in-transaction.d.ts","sourceRoot":"","sources":["../../../../src/vendor/transactional/transactions/run-in-transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEpF,eAAO,MAAM,gBAAgB,GAAI,IAAI,SAAS,CAAC,IAAI,EAAE,OAAO,KAAK,UAAU,CAAC,IAAI,CAAC,EAC/E,IAAI,IAAI,EACR,UAAU,wBAAwB,qBAGnC,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runInTransaction = void 0;
4
+ const wrap_in_transaction_1 = require("./wrap-in-transaction");
5
+ const runInTransaction = (fn, options) => {
6
+ return (0, wrap_in_transaction_1.wrapInTransaction)(fn, options)();
7
+ };
8
+ exports.runInTransaction = runInTransaction;
9
+ //# sourceMappingURL=run-in-transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-in-transaction.js","sourceRoot":"","sources":["../../../../src/vendor/transactional/transactions/run-in-transaction.ts"],"names":[],"mappings":";;;AAAA,+DAAoF;AAE7E,MAAM,gBAAgB,GAAG,CAC9B,EAAQ,EACR,OAAkC,EAClC,EAAE;IACF,OAAO,IAAA,uCAAiB,EAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC;AAC1C,CAAC,CAAC;AALW,QAAA,gBAAgB,oBAK3B"}
@@ -0,0 +1,11 @@
1
+ import { DataSourceName } from '../common';
2
+ import { IsolationLevel } from '../enums/isolation-level';
3
+ import { Propagation } from '../enums/propagation';
4
+ export interface WrapInTransactionOptions {
5
+ connectionName?: DataSourceName | (() => DataSourceName | undefined);
6
+ propagation?: Propagation;
7
+ isolationLevel?: IsolationLevel;
8
+ name?: string | symbol;
9
+ }
10
+ export declare const wrapInTransaction: <Fn extends (this: any, ...args: any[]) => ReturnType<Fn>>(fn: Fn, options?: WrapInTransactionOptions) => Fn;
11
+ //# sourceMappingURL=wrap-in-transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrap-in-transaction.d.ts","sourceRoot":"","sources":["../../../../src/vendor/transactional/transactions/wrap-in-transaction.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,cAAc,EAQf,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAKnD,MAAM,WAAW,wBAAwB;IAIvC,cAAc,CAAC,EAAE,cAAc,GAAG,CAAC,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC;IAErE,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,iBAAiB,GAAI,EAAE,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,UAAU,CAAC,EAAE,CAAC,EACxF,IAAI,EAAE,EACN,UAAU,wBAAwB,KAoIhB,EACnB,CAAC"}