@t4h.framework/orm 0.10.2 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +34 -0
- package/README.md +37 -2
- package/dist/activities/ORMLoadActivity.d.ts +16 -0
- package/dist/activities/ORMLoadActivity.d.ts.map +1 -0
- package/dist/activities/ORMLoadActivity.js +90 -0
- package/dist/activities/ORMLoadActivity.js.map +1 -0
- package/dist/activities/ORMLoadRelationActivity.d.ts +13 -0
- package/dist/activities/ORMLoadRelationActivity.d.ts.map +1 -0
- package/dist/activities/ORMLoadRelationActivity.js +23 -0
- package/dist/activities/ORMLoadRelationActivity.js.map +1 -0
- package/dist/claims/ORMClaim.d.ts +7 -1
- package/dist/claims/ORMClaim.d.ts.map +1 -1
- package/dist/claims/ORMClaim.js +5 -0
- package/dist/claims/ORMClaim.js.map +1 -1
- package/dist/decorators/ManyToOne.d.ts +6 -0
- package/dist/decorators/ManyToOne.d.ts.map +1 -0
- package/dist/decorators/ManyToOne.js +15 -0
- package/dist/decorators/ManyToOne.js.map +1 -0
- package/dist/decorators/OneToMany.d.ts +9 -0
- package/dist/decorators/OneToMany.d.ts.map +1 -0
- package/dist/decorators/OneToMany.js +18 -0
- package/dist/decorators/OneToMany.js.map +1 -0
- package/dist/decorators/metadata.d.ts +17 -0
- package/dist/decorators/metadata.d.ts.map +1 -1
- package/dist/decorators/metadata.js +11 -1
- package/dist/decorators/metadata.js.map +1 -1
- package/dist/helpers/Insert.d.ts +22 -0
- package/dist/helpers/Insert.d.ts.map +1 -0
- package/dist/helpers/Insert.js +73 -0
- package/dist/helpers/Insert.js.map +1 -0
- package/dist/helpers/Populate.d.ts +13 -0
- package/dist/helpers/Populate.d.ts.map +1 -0
- package/dist/helpers/Populate.js +31 -0
- package/dist/helpers/Populate.js.map +1 -0
- package/dist/helpers/Serialize.d.ts +11 -0
- package/dist/helpers/Serialize.d.ts.map +1 -0
- package/dist/helpers/Serialize.js +60 -0
- package/dist/helpers/Serialize.js.map +1 -0
- package/dist/helpers/hydrateEntity.d.ts +4 -0
- package/dist/helpers/hydrateEntity.d.ts.map +1 -0
- package/dist/helpers/hydrateEntity.js +30 -0
- package/dist/helpers/hydrateEntity.js.map +1 -0
- package/dist/helpers/isPlainObject.d.ts +2 -0
- package/dist/helpers/isPlainObject.d.ts.map +1 -0
- package/dist/helpers/isPlainObject.js +7 -0
- package/dist/helpers/isPlainObject.js.map +1 -0
- package/dist/helpers/refs.d.ts +5 -0
- package/dist/helpers/refs.d.ts.map +1 -0
- package/dist/helpers/refs.js +3 -0
- package/dist/helpers/refs.js.map +1 -0
- package/dist/helpers/toRefKey.d.ts +3 -0
- package/dist/helpers/toRefKey.d.ts.map +1 -0
- package/dist/helpers/toRefKey.js +4 -0
- package/dist/helpers/toRefKey.js.map +1 -0
- package/dist/models/MapCollection.d.ts +46 -0
- package/dist/models/MapCollection.d.ts.map +1 -0
- package/dist/models/MapCollection.js +126 -0
- package/dist/models/MapCollection.js.map +1 -0
- package/dist/models/ORM.d.ts +16 -3
- package/dist/models/ORM.d.ts.map +1 -1
- package/dist/models/ORM.js +43 -13
- package/dist/models/ORM.js.map +1 -1
- package/dist/models/Ref.d.ts +8 -1
- package/dist/models/Ref.d.ts.map +1 -1
- package/dist/models/Ref.js +17 -14
- package/dist/models/Ref.js.map +1 -1
- package/dist/models/RefCollection.d.ts +10 -1
- package/dist/models/RefCollection.d.ts.map +1 -1
- package/dist/models/RefCollection.js +62 -2
- package/dist/models/RefCollection.js.map +1 -1
- package/dist/orm.d.ts +6 -0
- package/dist/orm.d.ts.map +1 -1
- package/dist/orm.js +6 -0
- package/dist/orm.js.map +1 -1
- package/dist/typings/FindWhere.d.ts +2 -1
- package/dist/typings/FindWhere.d.ts.map +1 -1
- package/dist/typings/ORM.d.ts +42 -4
- package/dist/typings/ORM.d.ts.map +1 -1
- package/dist/typings/Relations.d.ts +27 -0
- package/dist/typings/Relations.d.ts.map +1 -0
- package/dist/typings/Relations.js +2 -0
- package/dist/typings/Relations.js.map +1 -0
- package/package.json +1 -1
package/dist/models/Ref.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { History, SerializableClass, } from '@t4h.framework/core';
|
|
2
|
-
import {
|
|
2
|
+
import { MapCollection } from './MapCollection.js';
|
|
3
|
+
import { RefCollection } from './RefCollection.js';
|
|
3
4
|
import { ORMRemoveActivity } from '../activities/ORMRemoveActivity.js';
|
|
4
5
|
import { ORMUpdateActivity } from '../activities/ORMUpdateActivity.js';
|
|
5
6
|
import { applyDefaultProperties } from '../constraints/apply-default-properties.js';
|
|
6
7
|
import { assertConstraints } from '../constraints/assert-constraints.js';
|
|
7
8
|
import { getEntityByTableName, getEntityMetadata, getEntityTableName, } from '../decorators/metadata.js';
|
|
8
|
-
|
|
9
|
+
import { Serialize } from '../helpers/Serialize.js';
|
|
9
10
|
const update = History.bind(ORMUpdateActivity);
|
|
10
11
|
const remove = History.bind(ORMRemoveActivity);
|
|
11
12
|
export class Ref extends SerializableClass {
|
|
@@ -18,17 +19,17 @@ export class Ref extends SerializableClass {
|
|
|
18
19
|
this.entity = entity;
|
|
19
20
|
this.ref = ref;
|
|
20
21
|
}
|
|
21
|
-
async getSnapshot() {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
return entity;
|
|
22
|
+
async getSnapshot(options) {
|
|
23
|
+
// TypeScript cannot match two instances of the recursive Populate<T>
|
|
24
|
+
const [snapshot] = await this.toCollection().getSnapshots(options);
|
|
25
|
+
return (snapshot ?? null);
|
|
26
|
+
}
|
|
27
|
+
async load(relation) {
|
|
28
|
+
const related = await this.toCollection().load(relation);
|
|
29
|
+
return (related instanceof MapCollection ? related : (related.at(0) ?? null));
|
|
30
|
+
}
|
|
31
|
+
toCollection() {
|
|
32
|
+
return new RefCollection(this.orm, this.entity, [this.ref]);
|
|
32
33
|
}
|
|
33
34
|
async update(data) {
|
|
34
35
|
const keys = Object.keys(data);
|
|
@@ -36,11 +37,13 @@ export class Ref extends SerializableClass {
|
|
|
36
37
|
await assertConstraints(this.entity, [row], {
|
|
37
38
|
keys,
|
|
38
39
|
});
|
|
40
|
+
Serialize.assertRelations(this.entity, [row], { keys });
|
|
41
|
+
const [serialized] = Serialize.relations(this.entity, [row]);
|
|
39
42
|
await update({
|
|
40
43
|
orm: this.orm,
|
|
41
44
|
table: getEntityTableName(this.entity),
|
|
42
45
|
ref: this.ref,
|
|
43
|
-
data:
|
|
46
|
+
data: serialized,
|
|
44
47
|
});
|
|
45
48
|
}
|
|
46
49
|
async remove() {
|
package/dist/models/Ref.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ref.js","sourceRoot":"","sources":["../../src/models/Ref.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,iBAAiB,GAIlB,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"Ref.js","sourceRoot":"","sources":["../../src/models/Ref.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,23 @@
|
|
|
1
1
|
import { SerializableClass, type Deserializer, type PromiseLikeType, type Serializer } from '@t4h.framework/core';
|
|
2
2
|
import type { ORM } from './ORM.js';
|
|
3
|
-
import { Ref } from './Ref.js';
|
|
3
|
+
import { Ref, type GetSnapshotOptions } from './Ref.js';
|
|
4
|
+
import { Populate } from '../helpers/Populate.js';
|
|
4
5
|
import type { EntityConstructor, SerializableRowRef } from '../typings/ORM.js';
|
|
6
|
+
import type { Populated, RelationCollection, RelationKey } from '../typings/Relations.js';
|
|
5
7
|
export declare class RefCollection<T> extends SerializableClass {
|
|
8
|
+
private readonly orm;
|
|
9
|
+
private readonly entity;
|
|
6
10
|
private readonly refs;
|
|
7
11
|
toSerializable(serializer: Serializer): Promise<{
|
|
12
|
+
orm: import("@t4h.framework/core").Serializable;
|
|
13
|
+
table: string;
|
|
8
14
|
refs: import("@t4h.framework/core").Serializable[];
|
|
9
15
|
}>;
|
|
10
16
|
protected fromSerializable(serializable: PromiseLikeType<ReturnType<this['toSerializable']>>, deserializer: Deserializer): Promise<void>;
|
|
11
17
|
constructor(orm: ORM, entity: EntityConstructor<T>, refs: SerializableRowRef[]);
|
|
18
|
+
private get rowRefs();
|
|
19
|
+
getSnapshots<P extends Populate<T> = never>(options?: GetSnapshotOptions<P>): Promise<(Populated<T, P> | null)[]>;
|
|
20
|
+
load<K extends RelationKey<T>>(relation: K): Promise<RelationCollection<T, K>>;
|
|
12
21
|
toArray(): Ref<T>[];
|
|
13
22
|
get length(): number;
|
|
14
23
|
at(index: number): Ref<T> | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RefCollection.d.ts","sourceRoot":"","sources":["../../src/models/RefCollection.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"RefCollection.d.ts","sourceRoot":"","sources":["../../src/models/RefCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EACjB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,UAAU,EAChB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,EAAE,GAAG,EAAE,KAAK,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAUvD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAGjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,KAAK,EACV,SAAS,EACT,kBAAkB,EAClB,WAAW,EACZ,MAAM,yBAAyB,CAAA;AAKhC,qBAAa,aAAa,CAAC,CAAC,CAAE,SAAQ,iBAAiB;IACrD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAM;IAE1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAE9C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAEnB,cAAc,CAAC,UAAU,EAAE,UAAU;;;;;cAQlC,gBAAgB,CAC9B,YAAY,EAAE,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EACjE,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,IAAI,CAAC;gBASd,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC5B,IAAI,EAAE,kBAAkB,EAAE;IAa5B,OAAO,KAAK,OAAO,GAElB;IAEY,YAAY,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,EACrD,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;IAoBzB,IAAI,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,EACxC,QAAQ,EAAE,CAAC,GACV,OAAO,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAmC7B,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;IAI1B,IAAW,MAAM,IAAI,MAAM,CAE1B;IAEM,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS;IAI/B,GAAG,CAAC,CAAC,EAChB,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GACjD,OAAO,CAAC,CAAC,EAAE,CAAC;IAIF,OAAO,CAClB,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACvD,OAAO,CAAC,IAAI,CAAC;IAIH,MAAM,CACjB,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAC7D,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAIb,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAG7C"}
|
|
@@ -1,14 +1,30 @@
|
|
|
1
|
-
import { SerializableClass, } from '@t4h.framework/core';
|
|
1
|
+
import { History, SerializableClass, } from '@t4h.framework/core';
|
|
2
|
+
import { MapCollection } from './MapCollection.js';
|
|
2
3
|
import { Ref } from './Ref.js';
|
|
4
|
+
import { ORMLoadActivity } from '../activities/ORMLoadActivity.js';
|
|
5
|
+
import { ORMLoadRelationActivity } from '../activities/ORMLoadRelationActivity.js';
|
|
6
|
+
import { getEntityByTableName, getEntityRelations, getEntityTableName, getInverseRelation, } from '../decorators/metadata.js';
|
|
7
|
+
import { hydrateEntity } from '../helpers/hydrateEntity.js';
|
|
8
|
+
import { Populate } from '../helpers/Populate.js';
|
|
9
|
+
import { rowRefOf } from '../helpers/refs.js';
|
|
10
|
+
import { toRefKey } from '../helpers/toRefKey.js';
|
|
11
|
+
const load = History.bind(ORMLoadActivity);
|
|
12
|
+
const loadRelation = History.bind(ORMLoadRelationActivity);
|
|
3
13
|
export class RefCollection extends SerializableClass {
|
|
14
|
+
orm;
|
|
15
|
+
entity;
|
|
4
16
|
refs;
|
|
5
17
|
async toSerializable(serializer) {
|
|
6
18
|
return {
|
|
19
|
+
orm: await serializer(this.orm),
|
|
20
|
+
table: getEntityTableName(this.entity),
|
|
7
21
|
refs: await Promise.all(this.refs.map(ref => serializer(ref))),
|
|
8
22
|
};
|
|
9
23
|
}
|
|
10
24
|
async fromSerializable(serializable, deserializer) {
|
|
11
25
|
Object.assign(this, {
|
|
26
|
+
orm: await deserializer(serializable.orm),
|
|
27
|
+
entity: getEntityByTableName(serializable.table),
|
|
12
28
|
refs: await Promise.all(serializable.refs.map(ref => deserializer(ref))),
|
|
13
29
|
});
|
|
14
30
|
}
|
|
@@ -16,7 +32,51 @@ export class RefCollection extends SerializableClass {
|
|
|
16
32
|
super();
|
|
17
33
|
if (!refs)
|
|
18
34
|
return;
|
|
19
|
-
|
|
35
|
+
Object.assign(this, {
|
|
36
|
+
orm,
|
|
37
|
+
entity,
|
|
38
|
+
refs: refs.map(ref => new Ref(orm, entity, ref)),
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
get rowRefs() {
|
|
42
|
+
return this.refs.map(rowRefOf);
|
|
43
|
+
}
|
|
44
|
+
async getSnapshots(options) {
|
|
45
|
+
if (!this.refs.length)
|
|
46
|
+
return [];
|
|
47
|
+
const populate = options?.populate ?? [];
|
|
48
|
+
Populate.assert(this.entity, populate);
|
|
49
|
+
const rows = await load({
|
|
50
|
+
orm: this.orm,
|
|
51
|
+
table: getEntityTableName(this.entity),
|
|
52
|
+
refs: this.rowRefs,
|
|
53
|
+
populate,
|
|
54
|
+
});
|
|
55
|
+
return rows.map(row => row && hydrateEntity(this.orm, this.entity, row));
|
|
56
|
+
}
|
|
57
|
+
async load(relation) {
|
|
58
|
+
const metadata = getEntityRelations(this.entity).get(relation);
|
|
59
|
+
if (!metadata)
|
|
60
|
+
throw new Error(`Cannot load "${relation}": "${this.entity.name}" has no relation "${relation}"`);
|
|
61
|
+
const target = metadata.entity();
|
|
62
|
+
if (metadata.kind === 'one-to-many')
|
|
63
|
+
return new MapCollection(this.orm, target, {
|
|
64
|
+
mappedBy: getInverseRelation(this.entity, metadata).name,
|
|
65
|
+
refs: this.rowRefs,
|
|
66
|
+
orderBy: metadata.orderBy,
|
|
67
|
+
});
|
|
68
|
+
const related = this.refs.length
|
|
69
|
+
? await loadRelation({
|
|
70
|
+
orm: this.orm,
|
|
71
|
+
table: getEntityTableName(this.entity),
|
|
72
|
+
refs: this.rowRefs,
|
|
73
|
+
relation,
|
|
74
|
+
})
|
|
75
|
+
: [];
|
|
76
|
+
const unique = new Map(related.filter(ref => ref !== null).map(ref => [toRefKey(ref), ref]));
|
|
77
|
+
return new RefCollection(this.orm, target, [
|
|
78
|
+
...unique.values(),
|
|
79
|
+
]);
|
|
20
80
|
}
|
|
21
81
|
toArray() {
|
|
22
82
|
return this.refs.slice();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RefCollection.js","sourceRoot":"","sources":["../../src/models/RefCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,GAIlB,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"RefCollection.js","sourceRoot":"","sources":["../../src/models/RefCollection.ts"],"names":[],"mappings":"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"}
|
package/dist/orm.d.ts
CHANGED
|
@@ -2,8 +2,11 @@ export * from './claims/ORMClaim.js';
|
|
|
2
2
|
export * from './errors/ConstraintError.js';
|
|
3
3
|
export * from './decorators/Entity.js';
|
|
4
4
|
export * from './decorators/Index.js';
|
|
5
|
+
export * from './decorators/ManyToOne.js';
|
|
6
|
+
export * from './decorators/OneToMany.js';
|
|
5
7
|
export * from './decorators/Property.js';
|
|
6
8
|
export * from './decorators/metadata.js';
|
|
9
|
+
export * from './models/MapCollection.js';
|
|
7
10
|
export * from './models/ORM.js';
|
|
8
11
|
export * from './models/Ref.js';
|
|
9
12
|
export * from './models/RefCollection.js';
|
|
@@ -13,7 +16,10 @@ export * from './activities/ORMRemoveActivity.js';
|
|
|
13
16
|
export * from './activities/ORMDeleteActivity.js';
|
|
14
17
|
export * from './activities/ORMFindActivity.js';
|
|
15
18
|
export * from './activities/ORMGetSnapshotActivity.js';
|
|
19
|
+
export * from './activities/ORMLoadActivity.js';
|
|
20
|
+
export * from './activities/ORMLoadRelationActivity.js';
|
|
16
21
|
export * from './activities/ORMUpdateActivity.js';
|
|
17
22
|
export * from './activities/ORMUpsertActivity.js';
|
|
18
23
|
export * from './typings/ORM.js';
|
|
24
|
+
export * from './typings/Relations.js';
|
|
19
25
|
//# sourceMappingURL=orm.d.ts.map
|
package/dist/orm.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orm.d.ts","sourceRoot":"","sources":["../src/orm.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AAEpC,cAAc,6BAA6B,CAAA;AAE3C,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AAExC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,2BAA2B,CAAA;AAEzC,cAAc,mCAAmC,CAAA;AACjD,cAAc,oCAAoC,CAAA;AAClD,cAAc,mCAAmC,CAAA;AACjD,cAAc,mCAAmC,CAAA;AACjD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,wCAAwC,CAAA;AACtD,cAAc,mCAAmC,CAAA;AACjD,cAAc,mCAAmC,CAAA;AAEjD,cAAc,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"orm.d.ts","sourceRoot":"","sources":["../src/orm.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AAEpC,cAAc,6BAA6B,CAAA;AAE3C,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AAExC,cAAc,2BAA2B,CAAA;AACzC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,2BAA2B,CAAA;AAEzC,cAAc,mCAAmC,CAAA;AACjD,cAAc,oCAAoC,CAAA;AAClD,cAAc,mCAAmC,CAAA;AACjD,cAAc,mCAAmC,CAAA;AACjD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,wCAAwC,CAAA;AACtD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yCAAyC,CAAA;AACvD,cAAc,mCAAmC,CAAA;AACjD,cAAc,mCAAmC,CAAA;AAEjD,cAAc,kBAAkB,CAAA;AAChC,cAAc,wBAAwB,CAAA"}
|
package/dist/orm.js
CHANGED
|
@@ -2,8 +2,11 @@ export * from './claims/ORMClaim.js';
|
|
|
2
2
|
export * from './errors/ConstraintError.js';
|
|
3
3
|
export * from './decorators/Entity.js';
|
|
4
4
|
export * from './decorators/Index.js';
|
|
5
|
+
export * from './decorators/ManyToOne.js';
|
|
6
|
+
export * from './decorators/OneToMany.js';
|
|
5
7
|
export * from './decorators/Property.js';
|
|
6
8
|
export * from './decorators/metadata.js';
|
|
9
|
+
export * from './models/MapCollection.js';
|
|
7
10
|
export * from './models/ORM.js';
|
|
8
11
|
export * from './models/Ref.js';
|
|
9
12
|
export * from './models/RefCollection.js';
|
|
@@ -13,7 +16,10 @@ export * from './activities/ORMRemoveActivity.js';
|
|
|
13
16
|
export * from './activities/ORMDeleteActivity.js';
|
|
14
17
|
export * from './activities/ORMFindActivity.js';
|
|
15
18
|
export * from './activities/ORMGetSnapshotActivity.js';
|
|
19
|
+
export * from './activities/ORMLoadActivity.js';
|
|
20
|
+
export * from './activities/ORMLoadRelationActivity.js';
|
|
16
21
|
export * from './activities/ORMUpdateActivity.js';
|
|
17
22
|
export * from './activities/ORMUpsertActivity.js';
|
|
18
23
|
export * from './typings/ORM.js';
|
|
24
|
+
export * from './typings/Relations.js';
|
|
19
25
|
//# sourceMappingURL=orm.js.map
|
package/dist/orm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orm.js","sourceRoot":"","sources":["../src/orm.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AAEpC,cAAc,6BAA6B,CAAA;AAE3C,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AAExC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,2BAA2B,CAAA;AAEzC,cAAc,mCAAmC,CAAA;AACjD,cAAc,oCAAoC,CAAA;AAClD,cAAc,mCAAmC,CAAA;AACjD,cAAc,mCAAmC,CAAA;AACjD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,wCAAwC,CAAA;AACtD,cAAc,mCAAmC,CAAA;AACjD,cAAc,mCAAmC,CAAA;AAEjD,cAAc,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"orm.js","sourceRoot":"","sources":["../src/orm.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AAEpC,cAAc,6BAA6B,CAAA;AAE3C,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AAExC,cAAc,2BAA2B,CAAA;AACzC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,2BAA2B,CAAA;AAEzC,cAAc,mCAAmC,CAAA;AACjD,cAAc,oCAAoC,CAAA;AAClD,cAAc,mCAAmC,CAAA;AACjD,cAAc,mCAAmC,CAAA;AACjD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,wCAAwC,CAAA;AACtD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yCAAyC,CAAA;AACvD,cAAc,mCAAmC,CAAA;AACjD,cAAc,mCAAmC,CAAA;AAEjD,cAAc,kBAAkB,CAAA;AAChC,cAAc,wBAAwB,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { MapCollection } from '../models/MapCollection.js';
|
|
1
2
|
export type Scalar = boolean | number | string | bigint | symbol | Date | RegExp | Uint8Array | {
|
|
2
3
|
toHexString(): string;
|
|
3
4
|
};
|
|
@@ -20,7 +21,7 @@ export type OperatorMap<T> = {
|
|
|
20
21
|
export type FilterItemValue<T> = T | ExpandScalar<T>;
|
|
21
22
|
export type FilterValue<T> = OperatorMap<FilterItemValue<T>> | FilterItemValue<T> | FilterItemValue<T>[] | null;
|
|
22
23
|
export type ExpandQuery<T> = T extends object ? T extends Scalar ? never : FilterQuery<T> : FilterValue<T>;
|
|
23
|
-
export type CleanKeys<T, K extends keyof T, B extends boolean = false> = T[K] & {} extends Function ? never : K extends symbol ? never : B extends true ? T[K] & {} extends Scalar ? never : K : K;
|
|
24
|
+
export type CleanKeys<T, K extends keyof T, B extends boolean = false> = T[K] & {} extends Function ? never : T[K] & {} extends MapCollection<any> ? never : K extends symbol ? never : B extends true ? T[K] & {} extends Scalar ? never : K : K;
|
|
24
25
|
export type EntityKey<T = unknown, B extends boolean = false> = string & {
|
|
25
26
|
[K in keyof T]-?: CleanKeys<T, K, B> extends never ? never : K;
|
|
26
27
|
}[keyof T];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FindWhere.d.ts","sourceRoot":"","sources":["../../src/typings/FindWhere.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,MAAM,GACd,OAAO,GACP,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,IAAI,GACJ,MAAM,GACN,UAAU,GACV;IAAE,WAAW,IAAI,MAAM,CAAA;CAAE,CAAA;AAE7B,MAAM,MAAM,YAAY,CAAC,CAAC,IACtB,IAAI,GACJ,CAAC,CAAC,SAAS,MAAM,GACb,CAAC,GAAG,MAAM,GACV,CAAC,SAAS,IAAI,GACZ,IAAI,GAAG,MAAM,GACb,CAAC,SAAS,MAAM,GACd,MAAM,GAAG,MAAM,GAAG,MAAM,GACxB,CAAC,CAAC,CAAA;AAEd,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IACvB,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IACtB,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,CAAA;IAClD,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;IACrB,GAAG,CAAC,EAAE,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,CAAA;IAChC,IAAI,CAAC,EAAE,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,CAAA;IACjC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;IAIrB,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;IACrB,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;IACtB,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;IACrB,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,MAAM,CAAC,EAAE,MAAM,CAAA;CAUhB,CAAA;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;AAEpD,MAAM,MAAM,WAAW,CAAC,CAAC,IACrB,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAC/B,eAAe,CAAC,CAAC,CAAC,GAClB,eAAe,CAAC,CAAC,CAAC,EAAE,GACpB,IAAI,CAAA;AAER,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GACzC,CAAC,SAAS,MAAM,GACd,KAAK,GACL,WAAW,CAAC,CAAC,CAAC,GAChB,WAAW,CAAC,CAAC,CAAC,CAAA;AAElB,MAAM,MAAM,SAAS,CACnB,CAAC,EACD,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,SAAS,OAAO,GAAG,KAAK,IACvB,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,QAAQ,GAC1B,KAAK,GACL,CAAC,SAAS,MAAM,GACd,KAAK,GACL,CAAC,SAAS,IAAI,GACZ,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,MAAM,GACtB,KAAK,GACL,CAAC,GACH,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"FindWhere.d.ts","sourceRoot":"","sources":["../../src/typings/FindWhere.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE/D,MAAM,MAAM,MAAM,GACd,OAAO,GACP,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,IAAI,GACJ,MAAM,GACN,UAAU,GACV;IAAE,WAAW,IAAI,MAAM,CAAA;CAAE,CAAA;AAE7B,MAAM,MAAM,YAAY,CAAC,CAAC,IACtB,IAAI,GACJ,CAAC,CAAC,SAAS,MAAM,GACb,CAAC,GAAG,MAAM,GACV,CAAC,SAAS,IAAI,GACZ,IAAI,GAAG,MAAM,GACb,CAAC,SAAS,MAAM,GACd,MAAM,GAAG,MAAM,GAAG,MAAM,GACxB,CAAC,CAAC,CAAA;AAEd,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IACvB,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IACtB,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,CAAA;IAClD,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;IACrB,GAAG,CAAC,EAAE,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,CAAA;IAChC,IAAI,CAAC,EAAE,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,CAAA;IACjC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;IAIrB,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;IACrB,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;IACtB,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;IACrB,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,MAAM,CAAC,EAAE,MAAM,CAAA;CAUhB,CAAA;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;AAEpD,MAAM,MAAM,WAAW,CAAC,CAAC,IACrB,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAC/B,eAAe,CAAC,CAAC,CAAC,GAClB,eAAe,CAAC,CAAC,CAAC,EAAE,GACpB,IAAI,CAAA;AAER,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GACzC,CAAC,SAAS,MAAM,GACd,KAAK,GACL,WAAW,CAAC,CAAC,CAAC,GAChB,WAAW,CAAC,CAAC,CAAC,CAAA;AAElB,MAAM,MAAM,SAAS,CACnB,CAAC,EACD,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,SAAS,OAAO,GAAG,KAAK,IACvB,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,QAAQ,GAC1B,KAAK,GACL,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,aAAa,CAAC,GAAG,CAAC,GAClC,KAAK,GACL,CAAC,SAAS,MAAM,GACd,KAAK,GACL,CAAC,SAAS,IAAI,GACZ,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,MAAM,GACtB,KAAK,GACL,CAAC,GACH,CAAC,CAAA;AAEX,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,SAAS,OAAO,GAAG,KAAK,IAAI,MAAM,GACpE;KACG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,GAAG,CAAC;CAC/D,CAAC,MAAM,CAAC,CAAC,CAAA;AAEZ,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CACrC,CAAA;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IACrB,WAAW,CAAC,CAAC,CAAC,GAEd,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,GAC5C,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;AAEpB,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;AAE7D,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI;IAC5B,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAC1B,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACjC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACjC,IAAI;CACT,CAAA;AAED,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAA;AAE9C,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAA"}
|
package/dist/typings/ORM.d.ts
CHANGED
|
@@ -1,15 +1,26 @@
|
|
|
1
1
|
import type { Serializable } from '@t4h.framework/core';
|
|
2
|
+
import type { ToManyKey, ToOneKey } from './Relations.js';
|
|
3
|
+
import type { MapCollection } from '../models/MapCollection.js';
|
|
2
4
|
import type { ORM } from '../models/ORM.js';
|
|
5
|
+
import type { Ref } from '../models/Ref.js';
|
|
3
6
|
export type EntityConstructor<T = any> = new () => T;
|
|
4
7
|
type Fn = (...args: any[]) => any;
|
|
8
|
+
type Skip = Fn | MapCollection<any>;
|
|
5
9
|
export type RequiredEntityData<T> = {
|
|
6
|
-
[K in keyof T as T[K] extends
|
|
10
|
+
[K in keyof T as T[K] extends Skip ? never : T[K] extends null ? never : K]: T[K];
|
|
7
11
|
};
|
|
8
12
|
export type EntityData<T> = {
|
|
9
|
-
[K in keyof T as T[K] extends
|
|
13
|
+
[K in keyof T as T[K] extends Skip ? never : K]: T[K];
|
|
10
14
|
};
|
|
11
|
-
export type EntityInsertData<T> =
|
|
12
|
-
|
|
15
|
+
export type EntityInsertData<T> = EntityData<T>;
|
|
16
|
+
type CreateValue<T, V> = NonNullable<V> extends MapCollection<infer U> ? EntityCreateData<U, T>[] : NonNullable<V> extends Ref<infer U> ? V | EntityCreateData<U> : V;
|
|
17
|
+
type ParentKey<T, P> = [P] extends [never] ? never : {
|
|
18
|
+
[K in ToOneKey<T>]: NonNullable<T[K]> extends Ref<P> ? K : never;
|
|
19
|
+
}[ToOneKey<T>];
|
|
20
|
+
export type EntityCreateData<T, P = never> = {
|
|
21
|
+
[K in keyof T as T[K] extends Fn ? never : K extends ToManyKey<T> | ParentKey<T, P> ? never : K]: CreateValue<T, T[K]>;
|
|
22
|
+
} & {
|
|
23
|
+
[K in ToManyKey<T> | ParentKey<T, P>]?: CreateValue<T, T[K]>;
|
|
13
24
|
};
|
|
14
25
|
export type EntityPartialData<T> = Partial<EntityData<T>>;
|
|
15
26
|
export type SerializedRow = Record<string, Serializable>;
|
|
@@ -33,6 +44,11 @@ export type SerializableGetSnapshotInput<R extends SerializableRowRef> = {
|
|
|
33
44
|
table: string;
|
|
34
45
|
ref: R;
|
|
35
46
|
};
|
|
47
|
+
export type SerializableGetSnapshotsInput<R extends SerializableRowRef> = {
|
|
48
|
+
orm: ORM;
|
|
49
|
+
table: string;
|
|
50
|
+
refs: R[];
|
|
51
|
+
};
|
|
36
52
|
export type SerializableUpdateInput<R extends SerializableRowRef> = {
|
|
37
53
|
orm: ORM;
|
|
38
54
|
table: string;
|
|
@@ -59,5 +75,27 @@ export type SerializableDeleteInput = {
|
|
|
59
75
|
table: string;
|
|
60
76
|
where: SerializableWhere;
|
|
61
77
|
};
|
|
78
|
+
export type SerializableLoadInput = {
|
|
79
|
+
orm: ORM;
|
|
80
|
+
table: string;
|
|
81
|
+
populate: string[];
|
|
82
|
+
} & ({
|
|
83
|
+
refs: SerializableRowRef[];
|
|
84
|
+
} | {
|
|
85
|
+
where: SerializableWhere;
|
|
86
|
+
orderBy?: Record<string, 'asc' | 'desc'>;
|
|
87
|
+
});
|
|
88
|
+
export type SerializableLoadRelationInput = {
|
|
89
|
+
orm: ORM;
|
|
90
|
+
table: string;
|
|
91
|
+
refs: SerializableRowRef[];
|
|
92
|
+
relation: string;
|
|
93
|
+
};
|
|
94
|
+
export type SerializableLoadedRow = {
|
|
95
|
+
ref: SerializableRowRef;
|
|
96
|
+
data: SerializedRow;
|
|
97
|
+
/** A populated @ManyToOne holds its row (null when missing), a @OneToMany its rows. */
|
|
98
|
+
relations: Record<string, SerializableLoadedRow | SerializableLoadedRow[] | null>;
|
|
99
|
+
};
|
|
62
100
|
export {};
|
|
63
101
|
//# sourceMappingURL=ORM.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ORM.d.ts","sourceRoot":"","sources":["../../src/typings/ORM.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAE3C,MAAM,MAAM,iBAAiB,CAAC,CAAC,GAAG,GAAG,IAAI,UAAU,CAAC,CAAA;AAEpD,KAAK,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;AAEjC,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI;KACjC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"ORM.d.ts","sourceRoot":"","sources":["../../src/typings/ORM.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { MapCollection } from '../models/MapCollection.js';
|
|
2
|
+
import type { Ref } from '../models/Ref.js';
|
|
3
|
+
import type { RefCollection } from '../models/RefCollection.js';
|
|
4
|
+
export type Related<V> = NonNullable<V> extends Ref<infer U> ? U : NonNullable<V> extends MapCollection<infer U> ? U : never;
|
|
5
|
+
export type ToOneKey<T> = {
|
|
6
|
+
[K in keyof T]-?: NonNullable<T[K]> extends Ref<any> ? K : never;
|
|
7
|
+
}[keyof T];
|
|
8
|
+
export type ToManyKey<T> = {
|
|
9
|
+
[K in keyof T]-?: NonNullable<T[K]> extends MapCollection<any> ? K : never;
|
|
10
|
+
}[keyof T];
|
|
11
|
+
export type RelationKey<T> = string & (ToOneKey<T> | ToManyKey<T>);
|
|
12
|
+
export type RelationRef<T, K extends RelationKey<T>> = NonNullable<T[K]> extends MapCollection<infer U> ? MapCollection<U> : Ref<Related<T[K]>> | null;
|
|
13
|
+
export type RelationCollection<T, K extends RelationKey<T>> = NonNullable<T[K]> extends MapCollection<infer U> ? MapCollection<U> : RefCollection<Related<T[K]>>;
|
|
14
|
+
type Head<P> = P extends `${infer H}.${string}` ? H : P;
|
|
15
|
+
type Tail<P, K> = P extends `${K & string}.${infer R}` ? R : never;
|
|
16
|
+
type PopulatedValue<V, P> = NonNullable<V> extends MapCollection<infer U> ? MapCollection<Populated<U, P>> | Extract<V, null | undefined> : NonNullable<V> extends Ref<infer U> ? Populated<U, P> | null : V;
|
|
17
|
+
/**
|
|
18
|
+
* The snapshot of `T` read with `populate: P[]`: each populated @ManyToOne is
|
|
19
|
+
* the related entity's snapshot instead of a `Ref` (`null` when the row is
|
|
20
|
+
* missing), and each populated @OneToMany is a loaded `MapCollection` of
|
|
21
|
+
* snapshots populated with the rest of the path.
|
|
22
|
+
*/
|
|
23
|
+
export type Populated<T, P = never> = [P] extends [never] ? T : {
|
|
24
|
+
[K in keyof T]: K extends Head<P> ? PopulatedValue<T[K], Tail<P, K>> : T[K];
|
|
25
|
+
};
|
|
26
|
+
export type { Populate } from '../helpers/Populate.js';
|
|
27
|
+
//# sourceMappingURL=Relations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Relations.d.ts","sourceRoot":"","sources":["../../src/typings/Relations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Relations.js","sourceRoot":"","sources":["../../src/typings/Relations.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@t4h.framework/orm",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.1",
|
|
4
4
|
"description": "ORM module for the T4H Framework",
|
|
5
5
|
"homepage": "https://github.com/tech4humans-brasil/framework/tree/main/packages/orm",
|
|
6
6
|
"bugs": "https://github.com/tech4humans-brasil/framework/issues",
|