@spinajs/orm 2.0.480 → 2.0.482
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 +72 -3
- package/lib/cjs/bootstrap.js +10 -0
- package/lib/cjs/bootstrap.js.map +1 -1
- package/lib/cjs/builders.d.ts +115 -11
- package/lib/cjs/builders.d.ts.map +1 -1
- package/lib/cjs/builders.js +342 -283
- package/lib/cjs/builders.js.map +1 -1
- package/lib/cjs/converters.d.ts +9 -2
- package/lib/cjs/converters.d.ts.map +1 -1
- package/lib/cjs/converters.js +48 -8
- package/lib/cjs/converters.js.map +1 -1
- package/lib/cjs/decorators.d.ts +26 -3
- package/lib/cjs/decorators.d.ts.map +1 -1
- package/lib/cjs/decorators.js +95 -42
- package/lib/cjs/decorators.js.map +1 -1
- package/lib/cjs/dehydrators.js +1 -1
- package/lib/cjs/dehydrators.js.map +1 -1
- package/lib/cjs/descriptor.d.ts +1 -0
- package/lib/cjs/descriptor.d.ts.map +1 -1
- package/lib/cjs/descriptor.js +16 -40
- package/lib/cjs/descriptor.js.map +1 -1
- package/lib/cjs/driver.d.ts +136 -7
- package/lib/cjs/driver.d.ts.map +1 -1
- package/lib/cjs/driver.js +279 -0
- package/lib/cjs/driver.js.map +1 -1
- package/lib/cjs/existsRelationHandlers.d.ts +29 -0
- package/lib/cjs/existsRelationHandlers.d.ts.map +1 -0
- package/lib/cjs/existsRelationHandlers.js +104 -0
- package/lib/cjs/existsRelationHandlers.js.map +1 -0
- package/lib/cjs/fp.d.ts.map +1 -1
- package/lib/cjs/fp.js +10 -15
- package/lib/cjs/fp.js.map +1 -1
- package/lib/cjs/hydrators.d.ts.map +1 -1
- package/lib/cjs/hydrators.js +29 -2
- package/lib/cjs/hydrators.js.map +1 -1
- package/lib/cjs/identity-map.d.ts +60 -0
- package/lib/cjs/identity-map.d.ts.map +1 -0
- package/lib/cjs/identity-map.js +135 -0
- package/lib/cjs/identity-map.js.map +1 -0
- package/lib/cjs/index.d.ts +12 -0
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +12 -0
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/interfaces.d.ts +295 -9
- package/lib/cjs/interfaces.d.ts.map +1 -1
- package/lib/cjs/interfaces.js +54 -1
- package/lib/cjs/interfaces.js.map +1 -1
- package/lib/cjs/metadata.d.ts.map +1 -1
- package/lib/cjs/metadata.js +4 -1
- package/lib/cjs/metadata.js.map +1 -1
- package/lib/cjs/metrics.d.ts +53 -0
- package/lib/cjs/metrics.d.ts.map +1 -0
- package/lib/cjs/metrics.js +82 -0
- package/lib/cjs/metrics.js.map +1 -0
- package/lib/cjs/middlewares.d.ts +13 -1
- package/lib/cjs/middlewares.d.ts.map +1 -1
- package/lib/cjs/middlewares.js +55 -15
- package/lib/cjs/middlewares.js.map +1 -1
- package/lib/cjs/model.d.ts +129 -13
- package/lib/cjs/model.d.ts.map +1 -1
- package/lib/cjs/model.js +449 -93
- package/lib/cjs/model.js.map +1 -1
- package/lib/cjs/orm.d.ts.map +1 -1
- package/lib/cjs/orm.js +12 -3
- package/lib/cjs/orm.js.map +1 -1
- package/lib/cjs/orphan.d.ts +27 -0
- package/lib/cjs/orphan.d.ts.map +1 -0
- package/lib/cjs/orphan.js +55 -0
- package/lib/cjs/orphan.js.map +1 -0
- package/lib/cjs/primary-keys.d.ts +60 -0
- package/lib/cjs/primary-keys.d.ts.map +1 -0
- package/lib/cjs/primary-keys.js +243 -0
- package/lib/cjs/primary-keys.js.map +1 -0
- package/lib/cjs/relation-objects.d.ts +101 -9
- package/lib/cjs/relation-objects.d.ts.map +1 -1
- package/lib/cjs/relation-objects.js +194 -43
- package/lib/cjs/relation-objects.js.map +1 -1
- package/lib/cjs/relations.d.ts +7 -1
- package/lib/cjs/relations.d.ts.map +1 -1
- package/lib/cjs/relations.js +16 -1
- package/lib/cjs/relations.js.map +1 -1
- package/lib/cjs/resilience.d.ts +50 -0
- package/lib/cjs/resilience.d.ts.map +1 -0
- package/lib/cjs/resilience.js +70 -0
- package/lib/cjs/resilience.js.map +1 -0
- package/lib/cjs/snapshot.d.ts +58 -0
- package/lib/cjs/snapshot.d.ts.map +1 -0
- package/lib/cjs/snapshot.js +125 -0
- package/lib/cjs/snapshot.js.map +1 -0
- package/lib/cjs/statements.d.ts +11 -1
- package/lib/cjs/statements.d.ts.map +1 -1
- package/lib/cjs/statements.js +13 -2
- package/lib/cjs/statements.js.map +1 -1
- package/lib/cjs/subject-builder.d.ts +79 -0
- package/lib/cjs/subject-builder.d.ts.map +1 -0
- package/lib/cjs/subject-builder.js +296 -0
- package/lib/cjs/subject-builder.js.map +1 -0
- package/lib/cjs/subject-executor.d.ts +122 -0
- package/lib/cjs/subject-executor.d.ts.map +1 -0
- package/lib/cjs/subject-executor.js +319 -0
- package/lib/cjs/subject-executor.js.map +1 -0
- package/lib/cjs/subject-sorter.d.ts +70 -0
- package/lib/cjs/subject-sorter.d.ts.map +1 -0
- package/lib/cjs/subject-sorter.js +173 -0
- package/lib/cjs/subject-sorter.js.map +1 -0
- package/lib/cjs/subject.d.ts +100 -0
- package/lib/cjs/subject.d.ts.map +1 -0
- package/lib/cjs/subject.js +89 -0
- package/lib/cjs/subject.js.map +1 -0
- package/lib/cjs/unit-of-work.d.ts +52 -0
- package/lib/cjs/unit-of-work.d.ts.map +1 -0
- package/lib/cjs/unit-of-work.js +170 -0
- package/lib/cjs/unit-of-work.js.map +1 -0
- package/lib/mjs/bootstrap.js +10 -0
- package/lib/mjs/bootstrap.js.map +1 -1
- package/lib/mjs/builders.d.ts +115 -11
- package/lib/mjs/builders.d.ts.map +1 -1
- package/lib/mjs/builders.js +344 -285
- package/lib/mjs/builders.js.map +1 -1
- package/lib/mjs/converters.d.ts +9 -2
- package/lib/mjs/converters.d.ts.map +1 -1
- package/lib/mjs/converters.js +48 -8
- package/lib/mjs/converters.js.map +1 -1
- package/lib/mjs/decorators.d.ts +26 -3
- package/lib/mjs/decorators.d.ts.map +1 -1
- package/lib/mjs/decorators.js +96 -44
- package/lib/mjs/decorators.js.map +1 -1
- package/lib/mjs/dehydrators.js +1 -1
- package/lib/mjs/dehydrators.js.map +1 -1
- package/lib/mjs/descriptor.d.ts +1 -0
- package/lib/mjs/descriptor.d.ts.map +1 -1
- package/lib/mjs/descriptor.js +17 -39
- package/lib/mjs/descriptor.js.map +1 -1
- package/lib/mjs/driver.d.ts +136 -7
- package/lib/mjs/driver.d.ts.map +1 -1
- package/lib/mjs/driver.js +279 -0
- package/lib/mjs/driver.js.map +1 -1
- package/lib/mjs/existsRelationHandlers.d.ts +29 -0
- package/lib/mjs/existsRelationHandlers.d.ts.map +1 -0
- package/lib/mjs/existsRelationHandlers.js +100 -0
- package/lib/mjs/existsRelationHandlers.js.map +1 -0
- package/lib/mjs/fp.d.ts.map +1 -1
- package/lib/mjs/fp.js +10 -15
- package/lib/mjs/fp.js.map +1 -1
- package/lib/mjs/hydrators.d.ts.map +1 -1
- package/lib/mjs/hydrators.js +29 -2
- package/lib/mjs/hydrators.js.map +1 -1
- package/lib/mjs/identity-map.d.ts +60 -0
- package/lib/mjs/identity-map.d.ts.map +1 -0
- package/lib/mjs/identity-map.js +130 -0
- package/lib/mjs/identity-map.js.map +1 -0
- package/lib/mjs/index.d.ts +12 -0
- package/lib/mjs/index.d.ts.map +1 -1
- package/lib/mjs/index.js +12 -0
- package/lib/mjs/index.js.map +1 -1
- package/lib/mjs/interfaces.d.ts +295 -9
- package/lib/mjs/interfaces.d.ts.map +1 -1
- package/lib/mjs/interfaces.js +53 -0
- package/lib/mjs/interfaces.js.map +1 -1
- package/lib/mjs/metadata.d.ts.map +1 -1
- package/lib/mjs/metadata.js +4 -1
- package/lib/mjs/metadata.js.map +1 -1
- package/lib/mjs/metrics.d.ts +53 -0
- package/lib/mjs/metrics.d.ts.map +1 -0
- package/lib/mjs/metrics.js +76 -0
- package/lib/mjs/metrics.js.map +1 -0
- package/lib/mjs/middlewares.d.ts +13 -1
- package/lib/mjs/middlewares.d.ts.map +1 -1
- package/lib/mjs/middlewares.js +55 -15
- package/lib/mjs/middlewares.js.map +1 -1
- package/lib/mjs/model.d.ts +129 -13
- package/lib/mjs/model.d.ts.map +1 -1
- package/lib/mjs/model.js +451 -95
- package/lib/mjs/model.js.map +1 -1
- package/lib/mjs/orm.d.ts.map +1 -1
- package/lib/mjs/orm.js +12 -3
- package/lib/mjs/orm.js.map +1 -1
- package/lib/mjs/orphan.d.ts +27 -0
- package/lib/mjs/orphan.d.ts.map +1 -0
- package/lib/mjs/orphan.js +52 -0
- package/lib/mjs/orphan.js.map +1 -0
- package/lib/mjs/primary-keys.d.ts +60 -0
- package/lib/mjs/primary-keys.d.ts.map +1 -0
- package/lib/mjs/primary-keys.js +223 -0
- package/lib/mjs/primary-keys.js.map +1 -0
- package/lib/mjs/relation-objects.d.ts +101 -9
- package/lib/mjs/relation-objects.d.ts.map +1 -1
- package/lib/mjs/relation-objects.js +194 -43
- package/lib/mjs/relation-objects.js.map +1 -1
- package/lib/mjs/relations.d.ts +7 -1
- package/lib/mjs/relations.d.ts.map +1 -1
- package/lib/mjs/relations.js +16 -1
- package/lib/mjs/relations.js.map +1 -1
- package/lib/mjs/resilience.d.ts +50 -0
- package/lib/mjs/resilience.d.ts.map +1 -0
- package/lib/mjs/resilience.js +64 -0
- package/lib/mjs/resilience.js.map +1 -0
- package/lib/mjs/snapshot.d.ts +58 -0
- package/lib/mjs/snapshot.d.ts.map +1 -0
- package/lib/mjs/snapshot.js +115 -0
- package/lib/mjs/snapshot.js.map +1 -0
- package/lib/mjs/statements.d.ts +11 -1
- package/lib/mjs/statements.d.ts.map +1 -1
- package/lib/mjs/statements.js +14 -3
- package/lib/mjs/statements.js.map +1 -1
- package/lib/mjs/subject-builder.d.ts +79 -0
- package/lib/mjs/subject-builder.d.ts.map +1 -0
- package/lib/mjs/subject-builder.js +292 -0
- package/lib/mjs/subject-builder.js.map +1 -0
- package/lib/mjs/subject-executor.d.ts +122 -0
- package/lib/mjs/subject-executor.d.ts.map +1 -0
- package/lib/mjs/subject-executor.js +312 -0
- package/lib/mjs/subject-executor.js.map +1 -0
- package/lib/mjs/subject-sorter.d.ts +70 -0
- package/lib/mjs/subject-sorter.d.ts.map +1 -0
- package/lib/mjs/subject-sorter.js +168 -0
- package/lib/mjs/subject-sorter.js.map +1 -0
- package/lib/mjs/subject.d.ts +100 -0
- package/lib/mjs/subject.d.ts.map +1 -0
- package/lib/mjs/subject.js +84 -0
- package/lib/mjs/subject.js.map +1 -0
- package/lib/mjs/unit-of-work.d.ts +52 -0
- package/lib/mjs/unit-of-work.d.ts.map +1 -0
- package/lib/mjs/unit-of-work.js +166 -0
- package/lib/mjs/unit-of-work.js.map +1 -0
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- package/package.json +9 -7
package/lib/mjs/decorators.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/* eslint-disable prettier/prettier */
|
|
2
2
|
import { JsonValueConverter, UniversalValueConverter, UuidConverter } from './converters.js';
|
|
3
|
-
import { DI } from '@spinajs/di';
|
|
3
|
+
import { DI, getInheritedDescriptor } from '@spinajs/di';
|
|
4
4
|
import { RelationType, DatetimeValueConverter, SetValueConverter } from './interfaces.js';
|
|
5
5
|
import 'reflect-metadata';
|
|
6
6
|
import { InvalidOperation, InvalidArgument } from '@spinajs/exceptions';
|
|
7
7
|
import { ManyQueryRelationList } from './relation-objects.js';
|
|
8
8
|
import { Orm } from './orm.js';
|
|
9
9
|
import { MODEL_DESCTRIPTION_SYMBOL, MIGRATION_DESCRIPTION_SYMBOL } from './symbols.js';
|
|
10
|
-
import { extractModelDescriptor,
|
|
10
|
+
import { extractModelDescriptor, createDefaultModelDescriptor } from './descriptor.js';
|
|
11
11
|
export { MODEL_DESCTRIPTION_SYMBOL, MIGRATION_DESCRIPTION_SYMBOL } from './symbols.js';
|
|
12
12
|
export function _prepareColumnDesc(initialize) {
|
|
13
13
|
return Object.assign({
|
|
@@ -32,37 +32,59 @@ export function _prepareColumnDesc(initialize) {
|
|
|
32
32
|
Virtual: false
|
|
33
33
|
}, initialize);
|
|
34
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Resolves the single column a relation joins on. A relation's PrimaryKey / ForeignKey each
|
|
37
|
+
* name exactly one column ( the JOIN compiler emits a one-column ON predicate ), so a composite
|
|
38
|
+
* primary key has no defensible default and must be named explicitly by the developer.
|
|
39
|
+
*/
|
|
40
|
+
export function _relationDefaultKey(descriptor, relationName, optionName) {
|
|
41
|
+
const keys = descriptor.PrimaryKey ?? [];
|
|
42
|
+
if (keys.length > 1) {
|
|
43
|
+
throw new InvalidOperation(`relation ${relationName} cannot default its join column: model ${descriptor.Name} has a composite primary key (${keys.join(', ')}). Pass ${optionName} explicitly.`);
|
|
44
|
+
}
|
|
45
|
+
return keys[0];
|
|
46
|
+
}
|
|
35
47
|
function _getMetadataFrom(target) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
* @Decorator({ a: 2})
|
|
48
|
-
* class B extends A {}
|
|
49
|
-
*
|
|
50
|
-
* @Decorator({ a: 3})
|
|
51
|
-
* class C extends A {}
|
|
52
|
-
*
|
|
53
|
-
* Normally metadata is created for class A due import order. Reflect.metadata() searches in prototype chain, so
|
|
54
|
-
* when class B gets decorator executed it will find already defined from class A. Then class C decorator will overwrite
|
|
55
|
-
* decorator for class A ( B decorator is lost ).
|
|
56
|
-
*
|
|
57
|
-
* This is becouse decorator is saerched in protype chain of object.
|
|
58
|
-
*
|
|
59
|
-
* When we need metadata value, we collapse this object with proper inheritance object
|
|
60
|
-
*/
|
|
61
|
-
if (!metadata.hasOwnProperty(target.name)) {
|
|
62
|
-
metadata[target.name] = extractModelDescriptorInherited(target);
|
|
48
|
+
// Sampled BEFORE getInheritedDescriptor, which stores own metadata as a side
|
|
49
|
+
// effect - so this is only true on the very first decorator to touch `target`.
|
|
50
|
+
const isFirstDecorator = !Reflect.getOwnMetadata(MODEL_DESCTRIPTION_SYMBOL, target);
|
|
51
|
+
// Own metadata per class - see @spinajs/di getInheritedDescriptor. Replaces
|
|
52
|
+
// the previous name-keyed container, which collapsed two classes sharing a
|
|
53
|
+
// name into a single slot.
|
|
54
|
+
const descriptor = getInheritedDescriptor(target, MODEL_DESCTRIPTION_SYMBOL, createDefaultModelDescriptor);
|
|
55
|
+
// Name is this class's own, never inherited from the base
|
|
56
|
+
descriptor.Name = target.name;
|
|
57
|
+
if (isFirstDecorator) {
|
|
58
|
+
detachInheritedModelMembers(descriptor);
|
|
63
59
|
}
|
|
64
|
-
|
|
65
|
-
|
|
60
|
+
return descriptor;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* The collapse merger ( @spinajs/di ) rebuilds Columns / Relations and the
|
|
64
|
+
* option objects one level deep, but their ELEMENTS stay shared by reference
|
|
65
|
+
* with the parent model. Decorators such as @Ignore / @Uuid ( `columnDesc.Ignore = true` ),
|
|
66
|
+
* @Recursive ( `relation.Recursive = true` ) and @CreatedAt / @SoftDelete /
|
|
67
|
+
* @DiscriminationMap ( `model.<option>.<field> = ...` ) mutate a found element
|
|
68
|
+
* in place - on an INHERITED member that would write straight through to the
|
|
69
|
+
* base model's descriptor. Give this class its own shallow copies of exactly
|
|
70
|
+
* the structures that get mutated in place. ( same hazard @spinajs/http closes
|
|
71
|
+
* with detachInheritedRoutes; Converters / JunctionModelProperties are only
|
|
72
|
+
* ever set/pushed with fresh values, so they need no copy. )
|
|
73
|
+
*/
|
|
74
|
+
function detachInheritedModelMembers(descriptor) {
|
|
75
|
+
descriptor.Columns = descriptor.Columns.map((c) => ({ ...c }));
|
|
76
|
+
// NOT `{ ...relation }`. A relation descriptor may carry a lazily-defined `PrimaryKey`
|
|
77
|
+
// accessor ( @BelongsTo / @HasManyToMany with a string target model, which cannot be
|
|
78
|
+
// resolved until the Orm is up ). Spreading INVOKES that getter — here, at decoration
|
|
79
|
+
// time, when DI.get(Orm) is still undefined — and then freezes whatever it returned into
|
|
80
|
+
// a plain value, defeating the laziness even when it does not throw. Copying property
|
|
81
|
+
// descriptors detaches the mutable data properties ( Recursive, etc. ) while leaving
|
|
82
|
+
// accessors as accessors.
|
|
83
|
+
descriptor.Relations = new Map([...descriptor.Relations].map(([name, relation]) => [name, Object.create(Object.getPrototypeOf(relation), Object.getOwnPropertyDescriptors(relation))]));
|
|
84
|
+
descriptor.Timestamps = { ...descriptor.Timestamps };
|
|
85
|
+
descriptor.SoftDelete = { ...descriptor.SoftDelete };
|
|
86
|
+
descriptor.Archived = { ...descriptor.Archived };
|
|
87
|
+
descriptor.DiscriminationMap = { ...descriptor.DiscriminationMap };
|
|
66
88
|
}
|
|
67
89
|
export function extractDecoratorPropertyDescriptor(callback) {
|
|
68
90
|
return (target, propertyKey, indexOrDescriptor) => {
|
|
@@ -193,11 +215,20 @@ export function Archived() {
|
|
|
193
215
|
});
|
|
194
216
|
}
|
|
195
217
|
/**
|
|
196
|
-
*
|
|
218
|
+
* Marks a field as part of the primary key. Applying it to more than one property of the same
|
|
219
|
+
* model declares a composite key; the columns are ordered by decorator evaluation order.
|
|
220
|
+
*
|
|
221
|
+
* NOTE: @Primary() is additive across an inheritance chain. A subclass cannot *replace* a base
|
|
222
|
+
* class's primary key, only extend it. Declare @Primary() on every key column of the concrete model.
|
|
223
|
+
*
|
|
224
|
+
* @param options.generated - key generation strategy, defaults to `auto` ( database identity ).
|
|
197
225
|
*/
|
|
198
|
-
export function Primary() {
|
|
226
|
+
export function Primary(options) {
|
|
199
227
|
return extractDecoratorPropertyDescriptor((model, _target, propertyKey) => {
|
|
200
|
-
model.PrimaryKey
|
|
228
|
+
if (!model.PrimaryKey.includes(propertyKey)) {
|
|
229
|
+
model.PrimaryKey.push(propertyKey);
|
|
230
|
+
}
|
|
231
|
+
model.PrimaryKeyGeneration.set(propertyKey, options?.generated ?? 'auto');
|
|
201
232
|
});
|
|
202
233
|
}
|
|
203
234
|
/**
|
|
@@ -281,17 +312,36 @@ export const forwardRef = (fn) => ({
|
|
|
281
312
|
*/
|
|
282
313
|
export function BelongsTo(targetModel, foreignKey, primaryKey) {
|
|
283
314
|
return extractDecoratorPropertyDescriptor((model, target, propertyKey) => {
|
|
284
|
-
const
|
|
285
|
-
model.Relations.set(propertyKey, {
|
|
315
|
+
const descriptor = {
|
|
286
316
|
Name: propertyKey,
|
|
287
317
|
Type: RelationType.One,
|
|
288
318
|
SourceModel: target,
|
|
289
319
|
TargetModelType: targetModel,
|
|
290
320
|
TargetModel: undefined,
|
|
291
321
|
ForeignKey: foreignKey ?? `${propertyKey.toLowerCase()}_id`,
|
|
292
|
-
|
|
322
|
+
// default PK must come from the TARGET model, not the source ( fixed below )
|
|
323
|
+
PrimaryKey: primaryKey ?? _relationDefaultKey(model, propertyKey, 'primaryKey'),
|
|
293
324
|
Recursive: false,
|
|
294
|
-
}
|
|
325
|
+
};
|
|
326
|
+
if (!primaryKey) {
|
|
327
|
+
if (typeof targetModel === 'string') {
|
|
328
|
+
// target resolved by name at runtime - read its PK lazily ( same pattern as HasManyToMany )
|
|
329
|
+
const getModel = function () {
|
|
330
|
+
return extractModelDescriptor(DI.get(Orm).Models.find((x) => x.name === targetModel).type);
|
|
331
|
+
};
|
|
332
|
+
Object.defineProperty(descriptor, 'PrimaryKey', {
|
|
333
|
+
get: function () {
|
|
334
|
+
const target = getModel();
|
|
335
|
+
return target ? _relationDefaultKey(target, propertyKey, 'primaryKey') : _relationDefaultKey(model, propertyKey, 'primaryKey');
|
|
336
|
+
},
|
|
337
|
+
});
|
|
338
|
+
}
|
|
339
|
+
else {
|
|
340
|
+
const targetModelDesc = extractModelDescriptor(targetModel);
|
|
341
|
+
descriptor.PrimaryKey = targetModelDesc ? _relationDefaultKey(targetModelDesc, propertyKey, 'primaryKey') : _relationDefaultKey(model, propertyKey, 'primaryKey');
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
model.Relations.set(propertyKey, descriptor);
|
|
295
345
|
});
|
|
296
346
|
}
|
|
297
347
|
export function Virtual(virtualRelation) {
|
|
@@ -352,7 +402,7 @@ export function ForwardBelongsTo(forwardRef, foreignKey, primaryKey) {
|
|
|
352
402
|
TargetModelType: forwardRef.forwardRef,
|
|
353
403
|
TargetModel: undefined,
|
|
354
404
|
ForeignKey: foreignKey ?? `${propertyKey.toLowerCase()}_id`,
|
|
355
|
-
PrimaryKey: primaryKey ?? model
|
|
405
|
+
PrimaryKey: primaryKey ?? _relationDefaultKey(model, propertyKey, 'primaryKey'),
|
|
356
406
|
Recursive: false,
|
|
357
407
|
});
|
|
358
408
|
});
|
|
@@ -375,8 +425,9 @@ export function HasMany(targetModel, options) {
|
|
|
375
425
|
TargetModelType: targetModel,
|
|
376
426
|
TargetModel: undefined,
|
|
377
427
|
ForeignKey: options ? options.foreignKey ?? `${model.Name.toLowerCase()}_id` : `${model.Name.toLowerCase()}_id`,
|
|
378
|
-
PrimaryKey: options
|
|
428
|
+
PrimaryKey: options?.primaryKey ?? _relationDefaultKey(model, propertyKey, 'options.primaryKey'),
|
|
379
429
|
Recursive: false,
|
|
430
|
+
Orphan: options?.orphan,
|
|
380
431
|
Factory: options?.factory ? options.factory : undefined,
|
|
381
432
|
RelationClass: options?.type ? options.type : () => DI.resolve('__orm_relation_has_many_factory__', [type]),
|
|
382
433
|
});
|
|
@@ -390,8 +441,8 @@ export function Historical(targetModel) {
|
|
|
390
441
|
SourceModel: target,
|
|
391
442
|
TargetModelType: targetModel,
|
|
392
443
|
TargetModel: undefined,
|
|
393
|
-
ForeignKey: model
|
|
394
|
-
PrimaryKey: model
|
|
444
|
+
ForeignKey: _relationDefaultKey(model, propertyKey, 'primaryKey'),
|
|
445
|
+
PrimaryKey: _relationDefaultKey(model, propertyKey, 'primaryKey'),
|
|
395
446
|
Recursive: false,
|
|
396
447
|
});
|
|
397
448
|
});
|
|
@@ -407,13 +458,14 @@ export function HasManyToMany(junctionModel, targetModel, options) {
|
|
|
407
458
|
const descriptor = {
|
|
408
459
|
Name: propertyKey,
|
|
409
460
|
Recursive: false,
|
|
461
|
+
Orphan: options?.orphan,
|
|
410
462
|
Type: RelationType.ManyToMany,
|
|
411
463
|
SourceModel: target,
|
|
412
464
|
TargetModelType: targetModel,
|
|
413
465
|
TargetModel: undefined,
|
|
414
466
|
ForeignKey: '',
|
|
415
467
|
// ForeignKey: options?.targetModelPKey ?? targetModelDescriptor.PrimaryKey,
|
|
416
|
-
PrimaryKey: options?.sourceModelPKey ?? model.
|
|
468
|
+
PrimaryKey: options?.sourceModelPKey ?? _relationDefaultKey(model, propertyKey, 'options.sourceModelPKey'),
|
|
417
469
|
JunctionModel: junctionModel,
|
|
418
470
|
// JunctionModelTargetModelFKey_Name: options?.junctionModelTargetPk ?? `${targetModelDescriptor.Name.toLowerCase()}_id`,
|
|
419
471
|
JunctionModelTargetModelFKey_Name: '',
|
|
@@ -443,7 +495,7 @@ export function HasManyToMany(junctionModel, targetModel, options) {
|
|
|
443
495
|
}
|
|
444
496
|
else {
|
|
445
497
|
const targetModelDescriptor = extractModelDescriptor(targetModel);
|
|
446
|
-
descriptor.ForeignKey = options?.targetModelPKey ?? targetModelDescriptor.
|
|
498
|
+
descriptor.ForeignKey = options?.targetModelPKey ?? _relationDefaultKey(targetModelDescriptor, propertyKey, 'options.targetModelPKey');
|
|
447
499
|
descriptor.JunctionModelTargetModelFKey_Name = options?.junctionModelTargetPk ?? `${targetModelDescriptor.Name.toLowerCase()}_id`;
|
|
448
500
|
}
|
|
449
501
|
let type = Reflect.getMetadata('design:type', target.prototype, propertyKey);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"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"}
|
package/lib/mjs/dehydrators.js
CHANGED
|
@@ -39,7 +39,7 @@ export class StandardModelWithRelationsDehydrator extends StandardModelDehydrato
|
|
|
39
39
|
continue;
|
|
40
40
|
}
|
|
41
41
|
if (val.Type === RelationType.One) {
|
|
42
|
-
if (model[val.Name]
|
|
42
|
+
if (model[val.Name]?.Value) {
|
|
43
43
|
obj[val.Name] = model[val.Name].Value.dehydrateWithRelations({
|
|
44
44
|
...options,
|
|
45
45
|
omit: []
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dehydrators.js","sourceRoot":"","sources":["../../src/dehydrators.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"dehydrators.js","sourceRoot":"","sources":["../../src/dehydrators.ts"],"names":[],"mappings":"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"}
|
package/lib/mjs/descriptor.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IModelDescriptor } from "./interfaces.js";
|
|
2
|
+
export declare function createDefaultModelDescriptor(): IModelDescriptor;
|
|
2
3
|
export declare function extractModelDescriptorInherited(targetOrForward: any): IModelDescriptor | null;
|
|
3
4
|
export declare function extractModelDescriptor(targetOrForward: any): IModelDescriptor | null;
|
|
4
5
|
//# sourceMappingURL=descriptor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"descriptor.d.ts","sourceRoot":"","sources":["../../src/descriptor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"descriptor.d.ts","sourceRoot":"","sources":["../../src/descriptor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,wBAAgB,4BAA4B,IAAI,gBAAgB,CA4B/D;AAED,wBAAgB,+BAA+B,CAAC,eAAe,EAAE,GAAG,GAAG,gBAAgB,GAAG,IAAI,CAgB7F;AAED,wBAAgB,sBAAsB,CAAC,eAAe,EAAE,GAAG,GAAG,gBAAgB,GAAG,IAAI,CAapF"}
|
package/lib/mjs/descriptor.js
CHANGED
|
@@ -1,21 +1,13 @@
|
|
|
1
|
-
import { isConstructor } from
|
|
1
|
+
import { isConstructor, collapseInheritedDescriptor } from '@spinajs/di';
|
|
2
2
|
import { MODEL_DESCTRIPTION_SYMBOL } from "./symbols.js";
|
|
3
|
-
|
|
4
|
-
function getConstructorChain(obj) {
|
|
5
|
-
var cs = [obj.name], pt = obj;
|
|
6
|
-
do {
|
|
7
|
-
if ((pt = Object.getPrototypeOf(pt)))
|
|
8
|
-
cs.push(pt.name || null);
|
|
9
|
-
} while (pt != null);
|
|
10
|
-
return cs.filter((x) => x !== 'Function' && x !== 'Object' && x !== null);
|
|
11
|
-
}
|
|
12
|
-
function createDefaultModelDescriptor() {
|
|
3
|
+
export function createDefaultModelDescriptor() {
|
|
13
4
|
return {
|
|
14
5
|
Driver: null,
|
|
15
6
|
Converters: new Map(),
|
|
16
7
|
Columns: [],
|
|
17
8
|
Connection: null,
|
|
18
|
-
PrimaryKey:
|
|
9
|
+
PrimaryKey: [],
|
|
10
|
+
PrimaryKeyGeneration: new Map(),
|
|
19
11
|
SoftDelete: {
|
|
20
12
|
DeletedAt: '',
|
|
21
13
|
},
|
|
@@ -42,32 +34,14 @@ export function extractModelDescriptorInherited(targetOrForward) {
|
|
|
42
34
|
if (!target) {
|
|
43
35
|
return null;
|
|
44
36
|
}
|
|
45
|
-
|
|
46
|
-
//
|
|
47
|
-
|
|
48
|
-
const merger = (a, b) => {
|
|
49
|
-
if (_.isArray(a) || _.isArray(b)) {
|
|
50
|
-
return [...(a ?? []), ...(b ?? [])];
|
|
51
|
-
}
|
|
52
|
-
if (!(_.isNil(a) || _.isEmpty(a)) && (_.isNil(b) || _.isEmpty(b))) {
|
|
53
|
-
return a;
|
|
54
|
-
}
|
|
55
|
-
if (_.isMap(a)) {
|
|
56
|
-
return new Map([...a, ...b]);
|
|
57
|
-
}
|
|
58
|
-
return b;
|
|
59
|
-
};
|
|
37
|
+
// Only the NEAREST own descriptor is collapsed onto a fresh default, and every stored
|
|
38
|
+
// descriptor is already collapsed, so array fields ( Columns, PrimaryKey ) gain no duplicate
|
|
39
|
+
// per inheritance level - the de-duplication the name-keyed reader needed is now structural.
|
|
60
40
|
return {
|
|
61
|
-
...createDefaultModelDescriptor
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
Converters: new Map([...(prev.Converters ?? []), ...(metadata[c] ? metadata[c].Converters : [])]),
|
|
66
|
-
};
|
|
67
|
-
}, {}) : {}),
|
|
68
|
-
...{
|
|
69
|
-
Name: target.name
|
|
70
|
-
}
|
|
41
|
+
...collapseInheritedDescriptor(target, MODEL_DESCTRIPTION_SYMBOL, createDefaultModelDescriptor),
|
|
42
|
+
// Name is always this class's own, never inherited - the merger would
|
|
43
|
+
// otherwise keep the parent's non-empty name over the child's default ''
|
|
44
|
+
Name: target.name,
|
|
71
45
|
};
|
|
72
46
|
}
|
|
73
47
|
export function extractModelDescriptor(targetOrForward) {
|
|
@@ -75,7 +49,11 @@ export function extractModelDescriptor(targetOrForward) {
|
|
|
75
49
|
if (!target) {
|
|
76
50
|
return null;
|
|
77
51
|
}
|
|
78
|
-
|
|
79
|
-
|
|
52
|
+
// master's own-metadata-per-class read. MUST stay paired with the write side in
|
|
53
|
+
// decorators.ts `_getMetadataFrom`, which replaced the old name-keyed container —
|
|
54
|
+
// that container collapsed two classes sharing a name into one slot (A9 in the
|
|
55
|
+
// ORM analysis). Reading name-keyed here against an own-metadata write returns null
|
|
56
|
+
// for every model.
|
|
57
|
+
return Reflect.getOwnMetadata(MODEL_DESCTRIPTION_SYMBOL, target) ?? null;
|
|
80
58
|
}
|
|
81
59
|
//# sourceMappingURL=descriptor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"descriptor.js","sourceRoot":"","sources":["../../src/descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"descriptor.js","sourceRoot":"","sources":["../../src/descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAEzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEzD,MAAM,UAAU,4BAA4B;IAC1C,OAAO;QACL,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE,IAAI,GAAG,EAAE;QACrB,OAAO,EAAE,EAAE;QACX,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,EAAE;QACd,oBAAoB,EAAE,IAAI,GAAG,EAAE;QAC/B,UAAU,EAAE;YACV,SAAS,EAAE,EAAE;SACd;QACD,QAAQ,EAAE;YACR,UAAU,EAAE,EAAE;SACf;QACD,SAAS,EAAE,EAAE;QACb,UAAU,EAAE;YACV,SAAS,EAAE,EAAE;YACb,SAAS,EAAE,EAAE;SACd;QACD,IAAI,EAAE,EAAE;QACR,SAAS,EAAE,IAAI,GAAG,EAAE;QACpB,uBAAuB,EAAE,EAAE;QAC3B,iBAAiB,EAAE;YACjB,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,IAAI;SACb;QACD,MAAM,EAAE,EAAE;KACX,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,eAAoB;IAClE,MAAM,MAAM,GAAG,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;IAExG,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sFAAsF;IACtF,6FAA6F;IAC7F,6FAA6F;IAC7F,OAAO;QACL,GAAG,2BAA2B,CAAC,MAAM,EAAE,yBAAyB,EAAE,4BAA4B,CAAC;QAC/F,sEAAsE;QACtE,yEAAyE;QACzE,IAAI,EAAE,MAAM,CAAC,IAAI;KAClB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,eAAoB;IACzD,MAAM,MAAM,GAAG,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;IAExG,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gFAAgF;IAChF,kFAAkF;IAClF,+EAA+E;IAC/E,oFAAoF;IACpF,mBAAmB;IACnB,OAAQ,OAAO,CAAC,cAAc,CAAC,yBAAyB,EAAE,MAAM,CAAsB,IAAI,IAAI,CAAC;AACjG,CAAC"}
|
package/lib/mjs/driver.d.ts
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
import { Log } from '@spinajs/log-common';
|
|
2
|
-
import { IColumnDescriptor, IDriverOptions, ISupportedFeature,
|
|
2
|
+
import { IColumnDescriptor, IDriverOptions, IPoolOptions, ISupportedFeature, IsolationLevel, ITransactionContext, ITransactionOptions } from './interfaces.js';
|
|
3
3
|
import { SyncService, IContainer, Container } from '@spinajs/di';
|
|
4
|
-
import { UpdateQueryBuilder, SelectQueryBuilder, IndexQueryBuilder, DeleteQueryBuilder, InsertQueryBuilder, SchemaQueryBuilder,
|
|
4
|
+
import { UpdateQueryBuilder, SelectQueryBuilder, IndexQueryBuilder, DeleteQueryBuilder, InsertQueryBuilder, SchemaQueryBuilder, TruncateTableQueryBuilder, Builder } from './builders.js';
|
|
5
|
+
import { AsyncLocalStorage } from 'async_hooks';
|
|
6
|
+
import { ConnectionState, IConnectionResilienceOptions } from './resilience.js';
|
|
7
|
+
import { IPoolMetrics } from './metrics.js';
|
|
5
8
|
import './hydrators.js';
|
|
6
9
|
import './dehydrators.js';
|
|
7
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Body of a transaction. Whatever it resolves with becomes the result of `transaction()`.
|
|
12
|
+
*/
|
|
13
|
+
export type TransactionCallback<R = any> = (driver: OrmDriver) => Promise<R>;
|
|
8
14
|
export declare abstract class OrmDriver<T extends IDriverOptions = IDriverOptions> extends SyncService {
|
|
9
15
|
/**
|
|
10
16
|
* Connection options
|
|
@@ -13,6 +19,25 @@ export declare abstract class OrmDriver<T extends IDriverOptions = IDriverOption
|
|
|
13
19
|
Container: IContainer;
|
|
14
20
|
protected RootContainer: Container;
|
|
15
21
|
protected Log: Log;
|
|
22
|
+
/**
|
|
23
|
+
* Ambient transaction context.
|
|
24
|
+
*
|
|
25
|
+
* Statements executed inside a `transaction()` callback must run on that transaction's
|
|
26
|
+
* connection. This lives on the abstract driver — rather than being a MySQL implementation
|
|
27
|
+
* detail, as it used to be — so the guarantee is part of the contract and every driver
|
|
28
|
+
* inherits it.
|
|
29
|
+
*/
|
|
30
|
+
protected TransactionStorage: AsyncLocalStorage<ITransactionContext>;
|
|
31
|
+
/**
|
|
32
|
+
* Isolation levels this driver honours. Empty by default: a driver that declares nothing
|
|
33
|
+
* rejects every explicitly requested isolation level rather than quietly ignoring it.
|
|
34
|
+
*/
|
|
35
|
+
readonly SupportedIsolationLevels: IsolationLevel[];
|
|
36
|
+
/**
|
|
37
|
+
* The transaction currently in scope on this async execution path, or `undefined` outside
|
|
38
|
+
* a transaction.
|
|
39
|
+
*/
|
|
40
|
+
get CurrentTransaction(): ITransactionContext | undefined;
|
|
16
41
|
constructor(options: T);
|
|
17
42
|
/**
|
|
18
43
|
* Executes query on database
|
|
@@ -42,6 +67,68 @@ export declare abstract class OrmDriver<T extends IDriverOptions = IDriverOption
|
|
|
42
67
|
abstract supportedFeatures(): ISupportedFeature;
|
|
43
68
|
abstract tableInfo(name: string, schema?: string): Promise<IColumnDescriptor[]>;
|
|
44
69
|
resolve(): void;
|
|
70
|
+
/**
|
|
71
|
+
* Effective pool settings: `Pool.*` when given, then the deprecated `PoolLimit` for `Max`,
|
|
72
|
+
* then the defaults. Resolved in one place so every driver agrees on what "unset" means.
|
|
73
|
+
*/
|
|
74
|
+
protected resolvedPoolOptions(): Required<IPoolOptions>;
|
|
75
|
+
private _state;
|
|
76
|
+
/**
|
|
77
|
+
* Current connection lifecycle state.
|
|
78
|
+
*/
|
|
79
|
+
get State(): ConnectionState;
|
|
80
|
+
/**
|
|
81
|
+
* Records a state transition and logs it. Repeat transitions to the same state are ignored.
|
|
82
|
+
*/
|
|
83
|
+
protected setState(state: ConnectionState): void;
|
|
84
|
+
/**
|
|
85
|
+
* Effective resilience settings with defaults applied.
|
|
86
|
+
*/
|
|
87
|
+
protected resolvedResilienceOptions(): Required<IConnectionResilienceOptions>;
|
|
88
|
+
/**
|
|
89
|
+
* True when the error means the transport died rather than the statement being wrong.
|
|
90
|
+
* Drivers override to add dialect-specific codes.
|
|
91
|
+
*/
|
|
92
|
+
protected isRetryableError(err: unknown): boolean;
|
|
93
|
+
/**
|
|
94
|
+
* Runs `operation`, and on a retryable transport failure reconnects and retries with bounded
|
|
95
|
+
* exponential backoff. Query errors propagate on the first attempt untouched.
|
|
96
|
+
*/
|
|
97
|
+
protected withReconnect<R>(operation: () => Promise<R>): Promise<R>;
|
|
98
|
+
private _healthCheckTimer;
|
|
99
|
+
/**
|
|
100
|
+
* Starts the periodic health probe. Replaces the single startup `ping()` — a connection that
|
|
101
|
+
* was healthy at boot tells you nothing about a pool holding sockets to a database that has
|
|
102
|
+
* since restarted. No-op when `Resilience.HealthCheckInterval` is 0. Idempotent.
|
|
103
|
+
*/
|
|
104
|
+
startHealthCheck(): void;
|
|
105
|
+
/**
|
|
106
|
+
* Stops the periodic health probe. Idempotent.
|
|
107
|
+
*/
|
|
108
|
+
stopHealthCheck(): void;
|
|
109
|
+
/**
|
|
110
|
+
* One health probe. A failed probe degrades the driver and attempts a single reconnect; it
|
|
111
|
+
* never throws, because it runs on a timer with no caller to receive the error.
|
|
112
|
+
*/
|
|
113
|
+
protected runHealthCheck(): Promise<void>;
|
|
114
|
+
/**
|
|
115
|
+
* Point-in-time pool state. The base implementation reports an empty pool; drivers that own a
|
|
116
|
+
* real pool override it. Must never throw — it runs on the health-check timer.
|
|
117
|
+
*/
|
|
118
|
+
poolMetrics(): IPoolMetrics;
|
|
119
|
+
/**
|
|
120
|
+
* Pushes the current pool state and connection state to the shared `Metrics` registry from
|
|
121
|
+
* `@spinajs/telemetry-common`. Nothing has to be wired for this to work — `Metrics` owns a
|
|
122
|
+
* private registry and `@spinajs/telemetry`'s `/metrics` endpoint renders that same singleton.
|
|
123
|
+
*/
|
|
124
|
+
publishPoolMetrics(): void;
|
|
125
|
+
/**
|
|
126
|
+
* Records one pool-acquire wait, in SECONDS ( prometheus convention ). Drivers that own a real
|
|
127
|
+
* pool call this from the acquire callback; keeping the prom-client objects behind this method
|
|
128
|
+
* is what stops every driver from needing to know about `@spinajs/telemetry-common`. Never
|
|
129
|
+
* throws, for the same reason `publishPoolMetrics` never throws.
|
|
130
|
+
*/
|
|
131
|
+
observeAcquireSeconds(seconds: number): void;
|
|
45
132
|
/**
|
|
46
133
|
* Creates select query builder associated with this connection.
|
|
47
134
|
* This can be used to execute raw queries to db without orm model layer
|
|
@@ -77,11 +164,53 @@ export declare abstract class OrmDriver<T extends IDriverOptions = IDriverOption
|
|
|
77
164
|
*/
|
|
78
165
|
index(): IndexQueryBuilder;
|
|
79
166
|
/**
|
|
80
|
-
*
|
|
167
|
+
* Opens a transaction and returns its per-transaction context. Drivers that pool connections
|
|
168
|
+
* acquire one here and put it on the context; drivers with a single shared handle return a
|
|
169
|
+
* context without a connection.
|
|
170
|
+
*/
|
|
171
|
+
protected abstract _begin(options?: ITransactionOptions): Promise<ITransactionContext>;
|
|
172
|
+
/**
|
|
173
|
+
* Commits the transaction described by `ctx`.
|
|
174
|
+
*/
|
|
175
|
+
protected abstract _commit(ctx: ITransactionContext): Promise<void>;
|
|
176
|
+
/**
|
|
177
|
+
* Rolls the transaction described by `ctx` back.
|
|
178
|
+
*/
|
|
179
|
+
protected abstract _rollback(ctx: ITransactionContext): Promise<void>;
|
|
180
|
+
/**
|
|
181
|
+
* Takes a named savepoint inside the transaction described by `ctx`.
|
|
182
|
+
*/
|
|
183
|
+
protected abstract _savepoint(ctx: ITransactionContext, name: string): Promise<void>;
|
|
184
|
+
/**
|
|
185
|
+
* Releases a named savepoint — the nested block succeeded and its changes fold into the
|
|
186
|
+
* enclosing transaction.
|
|
187
|
+
*/
|
|
188
|
+
protected abstract _releaseSavepoint(ctx: ITransactionContext, name: string): Promise<void>;
|
|
189
|
+
/**
|
|
190
|
+
* Discards everything done since a named savepoint, leaving the enclosing transaction intact.
|
|
191
|
+
*/
|
|
192
|
+
protected abstract _rollbackToSavepoint(ctx: ITransactionContext, name: string): Promise<void>;
|
|
193
|
+
/**
|
|
194
|
+
* Releases whatever `_begin` acquired. Called exactly once per transaction, on every exit
|
|
195
|
+
* path. A no-op for drivers that acquire nothing.
|
|
196
|
+
*/
|
|
197
|
+
protected abstract _dispose(ctx: ITransactionContext): Promise<void>;
|
|
198
|
+
/**
|
|
199
|
+
* Runs `cb` inside a transaction and owns its whole lifecycle: commits when the callback
|
|
200
|
+
* resolves, rolls back when it throws, and releases the connection exactly once either way.
|
|
201
|
+
* Resolves with whatever the callback returned.
|
|
202
|
+
*
|
|
203
|
+
* Statements issued inside the callback run on this transaction's connection automatically —
|
|
204
|
+
* the context is carried through `AsyncLocalStorage`, so nothing has to be threaded through
|
|
205
|
+
* by hand.
|
|
206
|
+
*
|
|
207
|
+
* Calling it again while a transaction is already in scope on this async path does **not**
|
|
208
|
+
* open a second, independent transaction: it takes a savepoint, so a failing nested block
|
|
209
|
+
* rolls back only its own work.
|
|
81
210
|
*
|
|
82
|
-
* @param
|
|
83
|
-
*
|
|
211
|
+
* @param cb - the transaction body
|
|
212
|
+
* @param options - optional isolation level, validated against {@link SupportedIsolationLevels}
|
|
84
213
|
*/
|
|
85
|
-
|
|
214
|
+
transaction<R>(cb: TransactionCallback<R>, options?: ITransactionOptions): Promise<R>;
|
|
86
215
|
}
|
|
87
216
|
//# sourceMappingURL=driver.d.ts.map
|
package/lib/mjs/driver.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../src/driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE1C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../src/driver.ts"],"names":[],"mappings":"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"}
|