@nestjs-transactional/core 1.0.0-alpha.5 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +131 -178
- package/dist/bootstrap/transactional-methods.bootstrap.d.ts +2 -2
- package/dist/bootstrap/transactional-methods.bootstrap.js +19 -22
- package/dist/bootstrap/transactional-methods.bootstrap.js.map +1 -1
- package/dist/context/transaction-context-view.d.ts +1 -1
- package/dist/context/transaction-context-view.js +3 -7
- package/dist/context/transaction-context-view.js.map +1 -1
- package/dist/context/transaction.context.d.ts +3 -3
- package/dist/context/transaction.context.js +6 -10
- package/dist/context/transaction.context.js.map +1 -1
- package/dist/decorators/inject-decorators.js +6 -12
- package/dist/decorators/inject-decorators.js.map +1 -1
- package/dist/decorators/transactional.decorator.d.ts +6 -1
- package/dist/decorators/transactional.decorator.js +15 -17
- package/dist/decorators/transactional.decorator.js.map +1 -1
- package/dist/index.d.ts +18 -18
- package/dist/index.js +18 -34
- package/dist/index.js.map +1 -1
- package/dist/interceptor/transactional.interceptor.d.ts +1 -1
- package/dist/interceptor/transactional.interceptor.js +12 -15
- package/dist/interceptor/transactional.interceptor.js.map +1 -1
- package/dist/internal/markers.js +1 -4
- package/dist/internal/markers.js.map +1 -1
- package/dist/manager/adapter.registry.d.ts +1 -1
- package/dist/manager/adapter.registry.js +12 -15
- package/dist/manager/adapter.registry.js.map +1 -1
- package/dist/manager/transaction.manager.d.ts +3 -3
- package/dist/manager/transaction.manager.js +38 -41
- package/dist/manager/transaction.manager.js.map +1 -1
- package/dist/module/transactional.module.d.ts +5 -5
- package/dist/module/transactional.module.js +48 -54
- package/dist/module/transactional.module.js.map +1 -1
- package/dist/observability/transaction-observer.d.ts +1 -1
- package/dist/observability/transaction-observer.js +1 -4
- package/dist/observability/transaction-observer.js.map +1 -1
- package/dist/testing/in-memory.adapter.d.ts +3 -3
- package/dist/testing/in-memory.adapter.js +4 -8
- package/dist/testing/in-memory.adapter.js.map +1 -1
- package/dist/testing/index.d.ts +1 -1
- package/dist/testing/index.js +1 -17
- package/dist/testing/index.js.map +1 -1
- package/dist/tokens/constants.js +1 -4
- package/dist/tokens/constants.js.map +1 -1
- package/dist/tokens/index.d.ts +2 -2
- package/dist/tokens/index.js +2 -10
- package/dist/tokens/index.js.map +1 -1
- package/dist/tokens/token-utils.js +5 -11
- package/dist/tokens/token-utils.js.map +1 -1
- package/dist/types/domain-event.js +1 -2
- package/dist/types/errors.js +4 -11
- package/dist/types/errors.js.map +1 -1
- package/dist/types/isolation.js +1 -2
- package/dist/types/propagation.js +2 -5
- package/dist/types/propagation.js.map +1 -1
- package/dist/types/transaction-adapter.d.ts +2 -2
- package/dist/types/transaction-adapter.js +1 -2
- package/dist/types/transaction-handle.js +1 -2
- package/dist/types/transaction-options.d.ts +32 -9
- package/dist/types/transaction-options.js +1 -2
- package/package.json +29 -15
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -12,15 +11,13 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
12
11
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
12
|
};
|
|
14
13
|
var TransactionManager_1;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const propagation_1 = require("../types/propagation");
|
|
23
|
-
const adapter_registry_1 = require("./adapter.registry");
|
|
14
|
+
import { randomUUID } from 'node:crypto';
|
|
15
|
+
import { Inject, Injectable, Logger, Optional } from '@nestjs/common';
|
|
16
|
+
import { TransactionContext } from '../context/transaction.context.js';
|
|
17
|
+
import { TRANSACTION_OBSERVERS, } from '../observability/transaction-observer.js';
|
|
18
|
+
import { IllegalTransactionStateError } from '../types/errors.js';
|
|
19
|
+
import { PropagationMode } from '../types/propagation.js';
|
|
20
|
+
import { ADAPTER_REGISTRY, AdapterRegistry } from './adapter.registry.js';
|
|
24
21
|
/**
|
|
25
22
|
* Runtime that executes a callback inside a transaction, following the
|
|
26
23
|
* requested {@link PropagationMode}. Exposes registration points for
|
|
@@ -35,7 +32,7 @@ const adapter_registry_1 = require("./adapter.registry");
|
|
|
35
32
|
let TransactionManager = TransactionManager_1 = class TransactionManager {
|
|
36
33
|
registry;
|
|
37
34
|
observers;
|
|
38
|
-
logger = new
|
|
35
|
+
logger = new Logger(TransactionManager_1.name);
|
|
39
36
|
constructor(registry, observers = []) {
|
|
40
37
|
this.registry = registry;
|
|
41
38
|
this.observers = observers;
|
|
@@ -76,62 +73,62 @@ let TransactionManager = TransactionManager_1 = class TransactionManager {
|
|
|
76
73
|
// dataSource takes precedence over adapter/adapterInstance (DD-020).
|
|
77
74
|
// Resolved up front so the rest of run() works in a single shape.
|
|
78
75
|
const { adapterName, instanceName } = this.resolveAdapterIdentifiers(options);
|
|
79
|
-
const propagation = options.propagation ??
|
|
76
|
+
const propagation = options.propagation ?? PropagationMode.REQUIRED;
|
|
80
77
|
const key = TransactionManager_1.contextKey(adapterName, instanceName);
|
|
81
|
-
const existing =
|
|
78
|
+
const existing = TransactionContext.getActiveTransaction(key);
|
|
82
79
|
switch (propagation) {
|
|
83
|
-
case
|
|
80
|
+
case PropagationMode.REQUIRED: {
|
|
84
81
|
if (existing !== undefined) {
|
|
85
82
|
return fn();
|
|
86
83
|
}
|
|
87
84
|
const adapter = this.registry.get(adapterName, instanceName);
|
|
88
85
|
return this.startNew(adapter, adapterName, instanceName, options, fn);
|
|
89
86
|
}
|
|
90
|
-
case
|
|
87
|
+
case PropagationMode.REQUIRES_NEW: {
|
|
91
88
|
const adapter = this.registry.get(adapterName, instanceName);
|
|
92
89
|
if (existing === undefined) {
|
|
93
90
|
return this.startNew(adapter, adapterName, instanceName, options, fn);
|
|
94
91
|
}
|
|
95
|
-
|
|
92
|
+
TransactionContext.removeActiveTransaction(key);
|
|
96
93
|
try {
|
|
97
94
|
return await this.startNew(adapter, adapterName, instanceName, options, fn);
|
|
98
95
|
}
|
|
99
96
|
finally {
|
|
100
|
-
|
|
97
|
+
TransactionContext.setActiveTransaction(key, existing);
|
|
101
98
|
}
|
|
102
99
|
}
|
|
103
|
-
case
|
|
100
|
+
case PropagationMode.NESTED: {
|
|
104
101
|
const adapter = this.registry.get(adapterName, instanceName);
|
|
105
102
|
if (existing === undefined) {
|
|
106
103
|
return this.startNew(adapter, adapterName, instanceName, options, fn);
|
|
107
104
|
}
|
|
108
105
|
return this.runNestedSavepoint(adapter, existing, options, fn);
|
|
109
106
|
}
|
|
110
|
-
case
|
|
107
|
+
case PropagationMode.SUPPORTS: {
|
|
111
108
|
return fn();
|
|
112
109
|
}
|
|
113
|
-
case
|
|
110
|
+
case PropagationMode.NOT_SUPPORTED: {
|
|
114
111
|
if (existing === undefined) {
|
|
115
112
|
return fn();
|
|
116
113
|
}
|
|
117
|
-
|
|
114
|
+
TransactionContext.removeActiveTransaction(key);
|
|
118
115
|
try {
|
|
119
116
|
return await fn();
|
|
120
117
|
}
|
|
121
118
|
finally {
|
|
122
|
-
|
|
119
|
+
TransactionContext.setActiveTransaction(key, existing);
|
|
123
120
|
}
|
|
124
121
|
}
|
|
125
|
-
case
|
|
122
|
+
case PropagationMode.NEVER: {
|
|
126
123
|
if (existing !== undefined) {
|
|
127
|
-
throw new
|
|
124
|
+
throw new IllegalTransactionStateError(`Propagation NEVER cannot be invoked inside an active transaction ` +
|
|
128
125
|
`(adapter: '${adapterName}', instance: '${instanceName}')`);
|
|
129
126
|
}
|
|
130
127
|
return fn();
|
|
131
128
|
}
|
|
132
|
-
case
|
|
129
|
+
case PropagationMode.MANDATORY: {
|
|
133
130
|
if (existing === undefined) {
|
|
134
|
-
throw new
|
|
131
|
+
throw new IllegalTransactionStateError(`Propagation MANDATORY requires an active transaction, but none is ` +
|
|
135
132
|
`active (adapter: '${adapterName}', instance: '${instanceName}')`);
|
|
136
133
|
}
|
|
137
134
|
return fn();
|
|
@@ -200,8 +197,8 @@ let TransactionManager = TransactionManager_1 = class TransactionManager {
|
|
|
200
197
|
this.currentTransaction().beforeCommitHooks.push(hook);
|
|
201
198
|
}
|
|
202
199
|
async startNew(adapter, adapterName, instanceName, options, fn) {
|
|
203
|
-
const outerStore =
|
|
204
|
-
const correlationId = outerStore?.correlationId ??
|
|
200
|
+
const outerStore = TransactionContext.getStore();
|
|
201
|
+
const correlationId = outerStore?.correlationId ?? randomUUID();
|
|
205
202
|
let activeTx;
|
|
206
203
|
const startTime = Date.now();
|
|
207
204
|
const key = TransactionManager_1.contextKey(adapterName, instanceName);
|
|
@@ -220,7 +217,7 @@ let TransactionManager = TransactionManager_1 = class TransactionManager {
|
|
|
220
217
|
beforeCommitHooks: [],
|
|
221
218
|
correlationId,
|
|
222
219
|
};
|
|
223
|
-
|
|
220
|
+
TransactionContext.setActiveTransaction(key, activeTx);
|
|
224
221
|
this.notifyStart({
|
|
225
222
|
transactionId: handle.id,
|
|
226
223
|
adapterName,
|
|
@@ -249,7 +246,7 @@ let TransactionManager = TransactionManager_1 = class TransactionManager {
|
|
|
249
246
|
}
|
|
250
247
|
}
|
|
251
248
|
finally {
|
|
252
|
-
|
|
249
|
+
TransactionContext.removeActiveTransaction(key);
|
|
253
250
|
}
|
|
254
251
|
});
|
|
255
252
|
}
|
|
@@ -291,7 +288,7 @@ let TransactionManager = TransactionManager_1 = class TransactionManager {
|
|
|
291
288
|
throw result.error;
|
|
292
289
|
};
|
|
293
290
|
if (outerStore === undefined) {
|
|
294
|
-
return
|
|
291
|
+
return TransactionContext.run(correlationId, body);
|
|
295
292
|
}
|
|
296
293
|
return body();
|
|
297
294
|
}
|
|
@@ -360,14 +357,14 @@ let TransactionManager = TransactionManager_1 = class TransactionManager {
|
|
|
360
357
|
throw result.error;
|
|
361
358
|
}
|
|
362
359
|
currentTransaction() {
|
|
363
|
-
const store =
|
|
360
|
+
const store = TransactionContext.getStore();
|
|
364
361
|
if (store === undefined) {
|
|
365
|
-
throw new
|
|
362
|
+
throw new IllegalTransactionStateError('Cannot register a transactional hook outside of TransactionManager.run()');
|
|
366
363
|
}
|
|
367
364
|
for (const tx of store.activeTransactions.values()) {
|
|
368
365
|
return tx;
|
|
369
366
|
}
|
|
370
|
-
throw new
|
|
367
|
+
throw new IllegalTransactionStateError('Cannot register a transactional hook: no active transaction on the current context');
|
|
371
368
|
}
|
|
372
369
|
/**
|
|
373
370
|
* Spring-style decision on whether a thrown error should trigger rollback:
|
|
@@ -401,12 +398,12 @@ let TransactionManager = TransactionManager_1 = class TransactionManager {
|
|
|
401
398
|
}
|
|
402
399
|
}
|
|
403
400
|
};
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
(0,
|
|
407
|
-
__param(
|
|
408
|
-
__param(1, (
|
|
409
|
-
|
|
410
|
-
__metadata("design:paramtypes", [adapter_registry_1.AdapterRegistry, Array])
|
|
401
|
+
TransactionManager = TransactionManager_1 = __decorate([
|
|
402
|
+
Injectable(),
|
|
403
|
+
__param(0, Inject(ADAPTER_REGISTRY)),
|
|
404
|
+
__param(1, Optional()),
|
|
405
|
+
__param(1, Inject(TRANSACTION_OBSERVERS)),
|
|
406
|
+
__metadata("design:paramtypes", [AdapterRegistry, Array])
|
|
411
407
|
], TransactionManager);
|
|
408
|
+
export { TransactionManager };
|
|
412
409
|
//# sourceMappingURL=transaction.manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.manager.js","sourceRoot":"","sources":["../../src/manager/transaction.manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transaction.manager.js","sourceRoot":"","sources":["../../src/manager/transaction.manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type DynamicModule, type InjectionToken, type ModuleMetadata } from '@nestjs/common';
|
|
2
|
-
import { type TransactionObserver } from '../observability/transaction-observer';
|
|
3
|
-
import type { TransactionAdapter } from '../types/transaction-adapter';
|
|
2
|
+
import { type TransactionObserver } from '../observability/transaction-observer.js';
|
|
3
|
+
import type { TransactionAdapter } from '../types/transaction-adapter.js';
|
|
4
4
|
/**
|
|
5
5
|
* Synchronous options for {@link TransactionalModule.forRoot}.
|
|
6
6
|
*
|
|
@@ -14,7 +14,7 @@ import type { TransactionAdapter } from '../types/transaction-adapter';
|
|
|
14
14
|
*
|
|
15
15
|
* Matches NestJS conventions (`TypeOrmModule`, `MongooseModule`,
|
|
16
16
|
* `ClientsModule`) and aligns with `OutboxModule.forRoot` from
|
|
17
|
-
*
|
|
17
|
+
* ADR-019. Cross-call coordination of singletons
|
|
18
18
|
* (`AdapterRegistry`, `TransactionManager`, `APP_INTERCEPTOR`,
|
|
19
19
|
* `TransactionalMethodsBootstrap`, `TRANSACTION_OBSERVERS`) lives in
|
|
20
20
|
* static class storage on {@link TransactionalModule}, mirroring
|
|
@@ -51,7 +51,7 @@ export interface TransactionalModuleOptions {
|
|
|
51
51
|
*/
|
|
52
52
|
readonly adapter?: TransactionAdapter;
|
|
53
53
|
/**
|
|
54
|
-
* When `true` (default
|
|
54
|
+
* When `true` (default), the module is registered as
|
|
55
55
|
* `@Global()` — its exports are available app-wide without being
|
|
56
56
|
* re-imported. Honored per call (each `forRoot` builds its own
|
|
57
57
|
* `DynamicModule` with its own `global` flag). Multi-call setups
|
|
@@ -123,7 +123,7 @@ export interface TransactionalModuleAsyncOptions extends Pick<ModuleMetadata, 'i
|
|
|
123
123
|
* default) the global {@link TransactionalInterceptor}. ADR-018
|
|
124
124
|
* shape — multi-dataSource deployments call {@link forRoot} once per
|
|
125
125
|
* dataSource. Static class storage coordinates singletons across
|
|
126
|
-
* calls (mirrors
|
|
126
|
+
* calls (mirrors `OutboxModule` per ADR-019).
|
|
127
127
|
*
|
|
128
128
|
* The first call registers the process-wide infrastructure; subsequent
|
|
129
129
|
* calls only contribute per-dataSource providers. Adapter-specific
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -6,17 +5,15 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
6
|
};
|
|
8
7
|
var TransactionalModule_1;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const transaction_observer_1 = require("../observability/transaction-observer");
|
|
19
|
-
const token_utils_1 = require("../tokens/token-utils");
|
|
8
|
+
import { Module, } from '@nestjs/common';
|
|
9
|
+
import { APP_INTERCEPTOR, DiscoveryModule } from '@nestjs/core';
|
|
10
|
+
import { TransactionalMethodsBootstrap } from '../bootstrap/transactional-methods.bootstrap.js';
|
|
11
|
+
import { TransactionContextView } from '../context/transaction-context-view.js';
|
|
12
|
+
import { TransactionalInterceptor } from '../interceptor/transactional.interceptor.js';
|
|
13
|
+
import { ADAPTER_REGISTRY, AdapterRegistry, } from '../manager/adapter.registry.js';
|
|
14
|
+
import { TransactionManager } from '../manager/transaction.manager.js';
|
|
15
|
+
import { TRANSACTION_OBSERVERS, } from '../observability/transaction-observer.js';
|
|
16
|
+
import { getTransactionContextToken, getTransactionManagerToken, getTransactionalAdapterToken, } from '../tokens/token-utils.js';
|
|
20
17
|
const ASYNC_OPTIONS_TOKEN = (id) => Symbol(`TRANSACTIONAL_ASYNC_OPTIONS[${id}]`);
|
|
21
18
|
const ASYNC_REGISTRATION_TOKEN = (id) => Symbol(`TRANSACTIONAL_ASYNC_REGISTRATION[${id}]`);
|
|
22
19
|
/**
|
|
@@ -25,7 +22,7 @@ const ASYNC_REGISTRATION_TOKEN = (id) => Symbol(`TRANSACTIONAL_ASYNC_REGISTRATIO
|
|
|
25
22
|
* default) the global {@link TransactionalInterceptor}. ADR-018
|
|
26
23
|
* shape — multi-dataSource deployments call {@link forRoot} once per
|
|
27
24
|
* dataSource. Static class storage coordinates singletons across
|
|
28
|
-
* calls (mirrors
|
|
25
|
+
* calls (mirrors `OutboxModule` per ADR-019).
|
|
29
26
|
*
|
|
30
27
|
* The first call registers the process-wide infrastructure; subsequent
|
|
31
28
|
* calls only contribute per-dataSource providers. Adapter-specific
|
|
@@ -149,37 +146,37 @@ let TransactionalModule = class TransactionalModule {
|
|
|
149
146
|
// ADAPTER_REGISTRY factory closes over the static `registrations`
|
|
150
147
|
// Map. By the time NestJS resolves this factory, every synchronous
|
|
151
148
|
// `forRoot` body has run and the Map is fully populated. Pattern
|
|
152
|
-
// mirrors
|
|
149
|
+
// mirrors `OutboxModule` per ADR-019.
|
|
153
150
|
providers.push({
|
|
154
|
-
provide:
|
|
151
|
+
provide: ADAPTER_REGISTRY,
|
|
155
152
|
useFactory: () => buildRegistryFromStaticStorage(TransactionalModule_1),
|
|
156
153
|
});
|
|
157
154
|
providers.push({
|
|
158
|
-
provide:
|
|
159
|
-
useExisting:
|
|
155
|
+
provide: AdapterRegistry,
|
|
156
|
+
useExisting: ADAPTER_REGISTRY,
|
|
160
157
|
});
|
|
161
|
-
providers.push(
|
|
158
|
+
providers.push(TransactionManager);
|
|
162
159
|
if (options.observers !== undefined) {
|
|
163
160
|
providers.push({
|
|
164
|
-
provide:
|
|
161
|
+
provide: TRANSACTION_OBSERVERS,
|
|
165
162
|
useValue: [...options.observers],
|
|
166
163
|
});
|
|
167
164
|
}
|
|
168
165
|
if (options.registerInterceptor !== false) {
|
|
169
166
|
providers.push({
|
|
170
|
-
provide:
|
|
171
|
-
useClass:
|
|
167
|
+
provide: APP_INTERCEPTOR,
|
|
168
|
+
useClass: TransactionalInterceptor,
|
|
172
169
|
});
|
|
173
170
|
}
|
|
174
171
|
if (options.registerMethodsBootstrap !== false) {
|
|
175
|
-
providers.push(
|
|
172
|
+
providers.push(TransactionalMethodsBootstrap);
|
|
176
173
|
}
|
|
177
|
-
exportTokens.push(
|
|
174
|
+
exportTokens.push(TransactionManager, ADAPTER_REGISTRY, AdapterRegistry);
|
|
178
175
|
}
|
|
179
176
|
return {
|
|
180
177
|
module: TransactionalModule_1,
|
|
181
178
|
global: options.isGlobal ?? true,
|
|
182
|
-
imports: [
|
|
179
|
+
imports: [DiscoveryModule],
|
|
183
180
|
providers,
|
|
184
181
|
exports: exportTokens,
|
|
185
182
|
};
|
|
@@ -243,12 +240,9 @@ let TransactionalModule = class TransactionalModule {
|
|
|
243
240
|
}
|
|
244
241
|
return true;
|
|
245
242
|
},
|
|
246
|
-
inject: [asyncToken,
|
|
243
|
+
inject: [asyncToken, ADAPTER_REGISTRY],
|
|
247
244
|
};
|
|
248
|
-
const providers = [
|
|
249
|
-
asyncOptionsProvider,
|
|
250
|
-
adapterEagerRegistrationProvider,
|
|
251
|
-
];
|
|
245
|
+
const providers = [asyncOptionsProvider, adapterEagerRegistrationProvider];
|
|
252
246
|
const exportTokens = [];
|
|
253
247
|
if (isFirst) {
|
|
254
248
|
this.infrastructureRegistered = true;
|
|
@@ -259,48 +253,48 @@ let TransactionalModule = class TransactionalModule {
|
|
|
259
253
|
// depends on it — so by the time consumers read the registry,
|
|
260
254
|
// every adapter has been registered.
|
|
261
255
|
providers.push({
|
|
262
|
-
provide:
|
|
263
|
-
useFactory: () => new
|
|
256
|
+
provide: ADAPTER_REGISTRY,
|
|
257
|
+
useFactory: () => new AdapterRegistry(),
|
|
264
258
|
});
|
|
265
259
|
providers.push({
|
|
266
|
-
provide:
|
|
267
|
-
useExisting:
|
|
260
|
+
provide: AdapterRegistry,
|
|
261
|
+
useExisting: ADAPTER_REGISTRY,
|
|
268
262
|
});
|
|
269
|
-
providers.push(
|
|
263
|
+
providers.push(TransactionManager);
|
|
270
264
|
// First-call-only observers honoring (Q2 invariant). The async
|
|
271
265
|
// factory may return `observers` — only the first forRootAsync's
|
|
272
266
|
// observers are wired; subsequent calls' observers are ignored
|
|
273
267
|
// (we cannot throw at call time because the value is only known
|
|
274
268
|
// after the factory runs).
|
|
275
269
|
providers.push({
|
|
276
|
-
provide:
|
|
277
|
-
useFactory: (opts) => opts.observers ? [...opts.observers] : [],
|
|
270
|
+
provide: TRANSACTION_OBSERVERS,
|
|
271
|
+
useFactory: (opts) => (opts.observers ? [...opts.observers] : []),
|
|
278
272
|
inject: [asyncToken],
|
|
279
273
|
});
|
|
280
274
|
if (options.registerInterceptor !== false) {
|
|
281
275
|
providers.push({
|
|
282
|
-
provide:
|
|
283
|
-
useClass:
|
|
276
|
+
provide: APP_INTERCEPTOR,
|
|
277
|
+
useClass: TransactionalInterceptor,
|
|
284
278
|
});
|
|
285
279
|
}
|
|
286
280
|
if (options.registerMethodsBootstrap !== false) {
|
|
287
|
-
providers.push(
|
|
281
|
+
providers.push(TransactionalMethodsBootstrap);
|
|
288
282
|
}
|
|
289
|
-
exportTokens.push(
|
|
283
|
+
exportTokens.push(TransactionManager, ADAPTER_REGISTRY, AdapterRegistry);
|
|
290
284
|
}
|
|
291
285
|
return {
|
|
292
286
|
module: TransactionalModule_1,
|
|
293
287
|
global: options.isGlobal ?? true,
|
|
294
|
-
imports: [
|
|
288
|
+
imports: [DiscoveryModule, ...(options.imports ?? [])],
|
|
295
289
|
providers,
|
|
296
290
|
exports: exportTokens,
|
|
297
291
|
};
|
|
298
292
|
}
|
|
299
293
|
};
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
(0, common_1.Module)({})
|
|
294
|
+
TransactionalModule = TransactionalModule_1 = __decorate([
|
|
295
|
+
Module({})
|
|
303
296
|
], TransactionalModule);
|
|
297
|
+
export { TransactionalModule };
|
|
304
298
|
/**
|
|
305
299
|
* Per-dataSource DI providers for ADR-018's token-based access pattern.
|
|
306
300
|
* Each adapter-bearing `forRoot` call registers, for the supplied
|
|
@@ -333,16 +327,16 @@ function buildPerDataSourceProviders(adapter) {
|
|
|
333
327
|
const ds = adapter.dataSourceName;
|
|
334
328
|
return [
|
|
335
329
|
{
|
|
336
|
-
provide:
|
|
330
|
+
provide: getTransactionalAdapterToken(ds),
|
|
337
331
|
useValue: adapter,
|
|
338
332
|
},
|
|
339
333
|
{
|
|
340
|
-
provide:
|
|
341
|
-
useValue: new
|
|
334
|
+
provide: getTransactionContextToken(ds),
|
|
335
|
+
useValue: new TransactionContextView(ds),
|
|
342
336
|
},
|
|
343
337
|
{
|
|
344
|
-
provide:
|
|
345
|
-
useExisting:
|
|
338
|
+
provide: getTransactionManagerToken(ds),
|
|
339
|
+
useExisting: TransactionManager,
|
|
346
340
|
},
|
|
347
341
|
];
|
|
348
342
|
}
|
|
@@ -351,12 +345,12 @@ function buildPerDataSourceProviders(adapter) {
|
|
|
351
345
|
* `registrations` Map on {@link TransactionalModule}. Called by the
|
|
352
346
|
* first-`forRoot`'s `ADAPTER_REGISTRY` factory at provider-resolution
|
|
353
347
|
* time — by then every synchronous `forRoot` body has populated the
|
|
354
|
-
* Map. Pattern mirrors
|
|
348
|
+
* Map. Pattern mirrors `OutboxModule` per ADR-019.
|
|
355
349
|
*
|
|
356
350
|
* @internal
|
|
357
351
|
*/
|
|
358
352
|
function buildRegistryFromStaticStorage(moduleClass) {
|
|
359
|
-
const registry = new
|
|
353
|
+
const registry = new AdapterRegistry();
|
|
360
354
|
// The Map is `private static` — read it through a structural cast.
|
|
361
355
|
const registrations = moduleClass.registrations;
|
|
362
356
|
for (const reg of registrations.values()) {
|
|
@@ -366,9 +360,9 @@ function buildRegistryFromStaticStorage(moduleClass) {
|
|
|
366
360
|
}
|
|
367
361
|
function buildPerDataSourceExports(ds) {
|
|
368
362
|
return [
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
363
|
+
getTransactionalAdapterToken(ds),
|
|
364
|
+
getTransactionContextToken(ds),
|
|
365
|
+
getTransactionManagerToken(ds),
|
|
372
366
|
];
|
|
373
367
|
}
|
|
374
368
|
//# sourceMappingURL=transactional.module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactional.module.js","sourceRoot":"","sources":["../../src/module/transactional.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transactional.module.js","sourceRoot":"","sources":["../../src/module/transactional.module.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAIL,MAAM,GAGP,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iDAAiD,CAAC;AAChG,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,EACL,gBAAgB,EAEhB,eAAe,GAChB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EACL,qBAAqB,GAEtB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,0BAA0B,CAAC;AAgIlC,MAAM,mBAAmB,GAAG,CAAC,EAAU,EAAU,EAAE,CAAC,MAAM,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;AACjG,MAAM,wBAAwB,GAAG,CAAC,EAAU,EAAU,EAAE,CACtD,MAAM,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;AAEpD;;;;;;;;;;;;;GAaG;AAEI,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;;IAC9B;;;;;;;;;;;OAWG;IACK,MAAM,CAAU,aAAa,GAAG,IAAI,GAAG,EAA+B,CAAC;IAE/E;;;;;;;;;;;;;OAaG;IACK,MAAM,CAAC,wBAAwB,GAAG,KAAK,CAAC;IAEhD;;;;;;OAMG;IACK,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC;IAEhC;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,eAAe;QACpB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;QACtC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;IACxB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,MAAM,CAAC,OAAO,CAAC,UAAsC,EAAE;QACrD,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC;QAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAEhC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;YAClC,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,KAAK,CACb,6CAA6C,EAAE,wBAAwB;oBACrE,wDAAwD;oBACxD,8EAA8E,CACjF,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE;gBACzB,WAAW,EAAE,OAAO,CAAC,IAAI;gBACzB,YAAY,EAAE,EAAE;gBAChB,OAAO;aACR,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,6EAA6E;gBAC3E,6EAA6E;gBAC7E,iEAAiE;gBACjE,8EAA8E,CACjF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CACb,+EAA+E;gBAC7E,yEAAyE,CAC5E,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAe,EAAE,CAAC;QACjC,MAAM,YAAY,GAAqB,EAAE,CAAC;QAE1C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,SAAS,CAAC,IAAI,CAAC,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC,CAAC;YACxD,YAAY,CAAC,IAAI,CAAC,GAAG,yBAAyB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;YAErC,kEAAkE;YAClE,mEAAmE;YACnE,iEAAiE;YACjE,sCAAsC;YACtC,SAAS,CAAC,IAAI,CAAC;gBACb,OAAO,EAAE,gBAAgB;gBACzB,UAAU,EAAE,GAAoB,EAAE,CAAC,8BAA8B,CAAC,qBAAmB,CAAC;aACvF,CAAC,CAAC;YACH,SAAS,CAAC,IAAI,CAAC;gBACb,OAAO,EAAE,eAAe;gBACxB,WAAW,EAAE,gBAAgB;aAC9B,CAAC,CAAC;YACH,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAEnC,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACpC,SAAS,CAAC,IAAI,CAAC;oBACb,OAAO,EAAE,qBAAqB;oBAC9B,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;iBACjC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,OAAO,CAAC,mBAAmB,KAAK,KAAK,EAAE,CAAC;gBAC1C,SAAS,CAAC,IAAI,CAAC;oBACb,OAAO,EAAE,eAAe;oBACxB,QAAQ,EAAE,wBAAwB;iBACnC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,OAAO,CAAC,wBAAwB,KAAK,KAAK,EAAE,CAAC;gBAC/C,SAAS,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAChD,CAAC;YAED,YAAY,CAAC,IAAI,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO;YACL,MAAM,EAAE,qBAAmB;YAC3B,MAAM,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;YAChC,OAAO,EAAE,CAAC,eAAe,CAAC;YAC1B,SAAS;YACT,OAAO,EAAE,YAAY;SACtB,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,MAAM,CAAC,YAAY,CAAC,OAAwC;QAC1D,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC;QAC/C,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAC3C,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,EAAE,CAAC,CAAC;QAEvD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,gEAAgE;QAChE,+DAA+D;QAC/D,iEAAiE;QAEjE,MAAM,oBAAoB,GAAoB;YAC5C,OAAO,EAAE,UAAU;YACnB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;SACzD,CAAC;QAEF,MAAM,gCAAgC,GAAoB;YACxD,OAAO,EAAE,iBAAiB;YAC1B,UAAU,EAAE,CACV,IAA2C,EAC3C,QAAyB,EACnB,EAAE;gBACR,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC/B,QAAQ,CAAC,QAAQ,CAAC;wBAChB,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;wBAC9B,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc;wBACzC,OAAO,EAAE,IAAI,CAAC,OAAO;qBACtB,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC;SACvC,CAAC;QAEF,MAAM,SAAS,GAAe,CAAC,oBAAoB,EAAE,gCAAgC,CAAC,CAAC;QACvF,MAAM,YAAY,GAAqB,EAAE,CAAC;QAE1C,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;YAErC,0DAA0D;YAC1D,kDAAkD;YAClD,0DAA0D;YAC1D,8DAA8D;YAC9D,8DAA8D;YAC9D,qCAAqC;YACrC,SAAS,CAAC,IAAI,CAAC;gBACb,OAAO,EAAE,gBAAgB;gBACzB,UAAU,EAAE,GAAoB,EAAE,CAAC,IAAI,eAAe,EAAE;aACzD,CAAC,CAAC;YACH,SAAS,CAAC,IAAI,CAAC;gBACb,OAAO,EAAE,eAAe;gBACxB,WAAW,EAAE,gBAAgB;aAC9B,CAAC,CAAC;YACH,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAEnC,+DAA+D;YAC/D,iEAAiE;YACjE,+DAA+D;YAC/D,gEAAgE;YAChE,2BAA2B;YAC3B,SAAS,CAAC,IAAI,CAAC;gBACb,OAAO,EAAE,qBAAqB;gBAC9B,UAAU,EAAE,CACV,IAA2C,EACX,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChF,MAAM,EAAE,CAAC,UAAU,CAAC;aACrB,CAAC,CAAC;YAEH,IAAI,OAAO,CAAC,mBAAmB,KAAK,KAAK,EAAE,CAAC;gBAC1C,SAAS,CAAC,IAAI,CAAC;oBACb,OAAO,EAAE,eAAe;oBACxB,QAAQ,EAAE,wBAAwB;iBACnC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,OAAO,CAAC,wBAAwB,KAAK,KAAK,EAAE,CAAC;gBAC/C,SAAS,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAChD,CAAC;YAED,YAAY,CAAC,IAAI,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO;YACL,MAAM,EAAE,qBAAmB;YAC3B,MAAM,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;YAChC,OAAO,EAAE,CAAC,eAAe,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YACtD,SAAS;YACT,OAAO,EAAE,YAAY;SACtB,CAAC;IACJ,CAAC;;AAvSU,mBAAmB;IAD/B,MAAM,CAAC,EAAE,CAAC;GACE,mBAAmB,CAwS/B;;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,SAAS,2BAA2B,CAAC,OAA2B;IAC9D,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAClC,OAAO;QACL;YACE,OAAO,EAAE,4BAA4B,CAAC,EAAE,CAAC;YACzC,QAAQ,EAAE,OAAO;SAClB;QACD;YACE,OAAO,EAAE,0BAA0B,CAAC,EAAE,CAAC;YACvC,QAAQ,EAAE,IAAI,sBAAsB,CAAC,EAAE,CAAC;SACzC;QACD;YACE,OAAO,EAAE,0BAA0B,CAAC,EAAE,CAAC;YACvC,WAAW,EAAE,kBAAkB;SAChC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,8BAA8B,CAAC,WAAuC;IAC7E,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;IACvC,mEAAmE;IACnE,MAAM,aAAa,GACjB,WACD,CAAC,aAAa,CAAC;IAChB,KAAK,MAAM,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;QACzC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,yBAAyB,CAAC,EAAU;IAC3C,OAAO;QACL,4BAA4B,CAAC,EAAE,CAAC;QAChC,0BAA0B,CAAC,EAAE,CAAC;QAC9B,0BAA0B,CAAC,EAAE,CAAC;KAC/B,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ExtendedTransactionOptions } from '../types/transaction-options';
|
|
1
|
+
import type { ExtendedTransactionOptions } from '../types/transaction-options.js';
|
|
2
2
|
/**
|
|
3
3
|
* Context passed to {@link TransactionObserver.onTransactionStart}. Built
|
|
4
4
|
* once by {@link TransactionManager} when a new transaction begins —
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TRANSACTION_OBSERVERS = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* DI token under which {@link TransactionObserver} instances are
|
|
6
3
|
* registered. Wired automatically by
|
|
@@ -14,5 +11,5 @@ exports.TRANSACTION_OBSERVERS = void 0;
|
|
|
14
11
|
* ]
|
|
15
12
|
* ```
|
|
16
13
|
*/
|
|
17
|
-
|
|
14
|
+
export const TRANSACTION_OBSERVERS = Symbol('TRANSACTION_OBSERVERS');
|
|
18
15
|
//# sourceMappingURL=transaction-observer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction-observer.js","sourceRoot":"","sources":["../../src/observability/transaction-observer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transaction-observer.js","sourceRoot":"","sources":["../../src/observability/transaction-observer.ts"],"names":[],"mappings":"AA2EA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { TransactionAdapter } from '../types/transaction-adapter';
|
|
2
|
-
import type { TransactionHandle } from '../types/transaction-handle';
|
|
3
|
-
import type { TransactionOptions } from '../types/transaction-options';
|
|
1
|
+
import type { TransactionAdapter } from '../types/transaction-adapter.js';
|
|
2
|
+
import type { TransactionHandle } from '../types/transaction-handle.js';
|
|
3
|
+
import type { TransactionOptions } from '../types/transaction-options.js';
|
|
4
4
|
/**
|
|
5
5
|
* Handle emitted by {@link InMemoryTransactionAdapter}. Extends
|
|
6
6
|
* {@link TransactionHandle} with a mutable `operations` array that tests
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.InMemoryTransactionAdapter = void 0;
|
|
4
|
-
const node_crypto_1 = require("node:crypto");
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
5
2
|
/**
|
|
6
3
|
* Adapter implementation intended for unit tests. Keeps the whole transaction
|
|
7
4
|
* lifecycle in memory and exposes observation arrays (committed, rolled back,
|
|
@@ -13,7 +10,7 @@ const node_crypto_1 = require("node:crypto");
|
|
|
13
10
|
* Exported through `@nestjs-transactional/core/testing`, never through the
|
|
14
11
|
* main entry point.
|
|
15
12
|
*/
|
|
16
|
-
class InMemoryTransactionAdapter {
|
|
13
|
+
export class InMemoryTransactionAdapter {
|
|
17
14
|
name = 'in-memory';
|
|
18
15
|
/**
|
|
19
16
|
* dataSource name this adapter is bound to (DD-021). Defaults to
|
|
@@ -31,7 +28,7 @@ class InMemoryTransactionAdapter {
|
|
|
31
28
|
savepointsRolledBack = [];
|
|
32
29
|
async runInTransaction(options, fn) {
|
|
33
30
|
const handle = {
|
|
34
|
-
id:
|
|
31
|
+
id: randomUUID(),
|
|
35
32
|
adapterName: this.name,
|
|
36
33
|
operations: [],
|
|
37
34
|
};
|
|
@@ -55,7 +52,7 @@ class InMemoryTransactionAdapter {
|
|
|
55
52
|
}
|
|
56
53
|
}
|
|
57
54
|
async runInSavepoint(parent, fn) {
|
|
58
|
-
const savepointId =
|
|
55
|
+
const savepointId = randomUUID();
|
|
59
56
|
this.savepointsCreated.push({ parentId: parent.id, savepointId });
|
|
60
57
|
try {
|
|
61
58
|
const result = await fn(parent);
|
|
@@ -79,5 +76,4 @@ class InMemoryTransactionAdapter {
|
|
|
79
76
|
this.savepointsRolledBack = [];
|
|
80
77
|
}
|
|
81
78
|
}
|
|
82
|
-
exports.InMemoryTransactionAdapter = InMemoryTransactionAdapter;
|
|
83
79
|
//# sourceMappingURL=in-memory.adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in-memory.adapter.js","sourceRoot":"","sources":["../../src/testing/in-memory.adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"in-memory.adapter.js","sourceRoot":"","sources":["../../src/testing/in-memory.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAwCzC;;;;;;;;;;GAUG;AACH,MAAM,OAAO,0BAA0B;IAC5B,IAAI,GAAG,WAAW,CAAC;IAE5B;;;;OAIG;IACM,cAAc,CAAS;IAEhC,YAAY,cAAc,GAAG,SAAS;QACpC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED,qBAAqB,GAAmC,EAAE,CAAC;IAC3D,sBAAsB,GAAoC,EAAE,CAAC;IAC7D,iBAAiB,GAA8B,EAAE,CAAC;IAClD,kBAAkB,GAA8B,EAAE,CAAC;IACnD,oBAAoB,GAAwC,EAAE,CAAC;IAE/D,KAAK,CAAC,gBAAgB,CACpB,OAA2B,EAC3B,EAAqD;QAErD,MAAM,MAAM,GAA8B;YACxC,EAAE,EAAE,UAAU,EAAE;YAChB,WAAW,EAAE,IAAI,CAAC,IAAI;YACtB,UAAU,EAAE,EAAE;SACf,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;gBAC9B,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,OAAO;aACR,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;gBAC/B,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,OAAO;gBACP,KAAK;aACN,CAAC,CAAC;YACH,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,MAAiC,EACjC,EAAqD;QAErD,MAAM,WAAW,GAAG,UAAU,EAAE,CAAC;QACjC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAElE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;YACnE,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;YAC5E,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;QAChC,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;IACjC,CAAC;CACF"}
|
package/dist/testing/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './in-memory.adapter';
|
|
1
|
+
export * from './in-memory.adapter.js';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|