@t4h.framework/orm 0.8.0 → 0.9.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/CHANGELOG.md +6 -0
- package/dist/decorators/Entity.d.ts.map +1 -1
- package/dist/decorators/Entity.js +2 -1
- package/dist/decorators/Entity.js.map +1 -1
- package/dist/decorators/metadata.d.ts +2 -0
- package/dist/decorators/metadata.d.ts.map +1 -1
- package/dist/decorators/metadata.js +10 -0
- package/dist/decorators/metadata.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 +18 -3
- package/dist/models/Ref.js.map +1 -1
- package/dist/models/RefCollection.d.ts +6 -1
- package/dist/models/RefCollection.d.ts.map +1 -1
- package/dist/models/RefCollection.js +15 -1
- package/dist/models/RefCollection.js.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @t4h.framework/orm
|
|
2
2
|
|
|
3
|
+
## 0.9.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#187](https://github.com/tech4humans-brasil/framework/pull/187) [`a714f89`](https://github.com/tech4humans-brasil/framework/commit/a714f89f7051b82ad39daadf0adc0860e2d654c4) Thanks [@gusteycamargo](https://github.com/gusteycamargo)! - Turn Ref and Ref Collection serializable
|
|
8
|
+
|
|
3
9
|
## 0.8.0
|
|
4
10
|
|
|
5
11
|
### Minor Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Entity.d.ts","sourceRoot":"","sources":["../../src/decorators/Entity.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"Entity.d.ts","sourceRoot":"","sources":["../../src/decorators/Entity.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,cAAc,CAQ7D"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { getEntityMetadata } from './metadata.js';
|
|
1
|
+
import { getEntityMetadata, registerEntity } from './metadata.js';
|
|
2
2
|
export function Entity(options) {
|
|
3
3
|
return target => {
|
|
4
4
|
const metadata = getEntityMetadata(target);
|
|
5
5
|
metadata.tableName = options?.tableName;
|
|
6
|
+
registerEntity(target);
|
|
6
7
|
};
|
|
7
8
|
}
|
|
8
9
|
//# sourceMappingURL=Entity.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Entity.js","sourceRoot":"","sources":["../../src/decorators/Entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"Entity.js","sourceRoot":"","sources":["../../src/decorators/Entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAMjE,MAAM,UAAU,MAAM,CAAC,OAAsB;IAC3C,OAAO,MAAM,CAAC,EAAE;QACd,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAkC,CAAC,CAAA;QAEtE,QAAQ,CAAC,SAAS,GAAG,OAAO,EAAE,SAAS,CAAA;QAEvC,cAAc,CAAC,MAAkC,CAAC,CAAA;IACpD,CAAC,CAAA;AACH,CAAC"}
|
|
@@ -15,4 +15,6 @@ export interface PropertyMetadata {
|
|
|
15
15
|
export declare function getEntityMetadata(target: new (...args: any[]) => any): EntityMetadata;
|
|
16
16
|
export declare function getEntityTableName(target: new (...args: any[]) => any): string;
|
|
17
17
|
export declare function getEntityProperties(target: new (...args: any[]) => any): Map<string, PropertyMetadata>;
|
|
18
|
+
export declare function registerEntity(target: new (...args: any[]) => any): void;
|
|
19
|
+
export declare function getEntityByTableName(tableName: string): new (...args: any[]) => any;
|
|
18
20
|
//# sourceMappingURL=metadata.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/decorators/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IACzC,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,CAAA;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;
|
|
1
|
+
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/decorators/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IACzC,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,CAAA;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAMD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAClC,cAAc,CAShB;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAClC,MAAM,CAIR;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAClC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAE/B;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAAG,IAAI,CAExE;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,GAChB,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAS7B"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
const entityMetadataMap = new WeakMap();
|
|
2
|
+
const entityRegistry = new Map();
|
|
2
3
|
export function getEntityMetadata(target) {
|
|
3
4
|
let metadata = entityMetadataMap.get(target.prototype);
|
|
4
5
|
if (!metadata) {
|
|
@@ -14,4 +15,13 @@ export function getEntityTableName(target) {
|
|
|
14
15
|
export function getEntityProperties(target) {
|
|
15
16
|
return getEntityMetadata(target).properties;
|
|
16
17
|
}
|
|
18
|
+
export function registerEntity(target) {
|
|
19
|
+
entityRegistry.set(getEntityTableName(target), target);
|
|
20
|
+
}
|
|
21
|
+
export function getEntityByTableName(tableName) {
|
|
22
|
+
const entity = entityRegistry.get(tableName);
|
|
23
|
+
if (!entity)
|
|
24
|
+
throw new Error(`Could not find an entity for table "${tableName}": is it decorated with @Entity?`);
|
|
25
|
+
return entity;
|
|
26
|
+
}
|
|
17
27
|
//# sourceMappingURL=metadata.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/decorators/metadata.ts"],"names":[],"mappings":"AAkBA,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAA0B,CAAA;AAE/D,MAAM,UAAU,iBAAiB,CAC/B,MAAmC;IAEnC,IAAI,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAEtD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,EAAE,UAAU,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;QACjD,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IACnD,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,MAAmC;IAEnC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAE1C,OAAO,QAAQ,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAA;AAC1C,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,MAAmC;IAEnC,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC,UAAU,CAAA;AAC7C,CAAC"}
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/decorators/metadata.ts"],"names":[],"mappings":"AAkBA,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAA0B,CAAA;AAE/D,MAAM,cAAc,GAAG,IAAI,GAAG,EAAuC,CAAA;AAErE,MAAM,UAAU,iBAAiB,CAC/B,MAAmC;IAEnC,IAAI,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAEtD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,EAAE,UAAU,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;QACjD,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IACnD,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,MAAmC;IAEnC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAE1C,OAAO,QAAQ,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAA;AAC1C,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,MAAmC;IAEnC,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC,UAAU,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAmC;IAChE,cAAc,CAAC,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAA;AACxD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,SAAiB;IAEjB,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAE5C,IAAI,CAAC,MAAM;QACT,MAAM,IAAI,KAAK,CACb,uCAAuC,SAAS,kCAAkC,CACnF,CAAA;IAEH,OAAO,MAAM,CAAA;AACf,CAAC"}
|
package/dist/models/Ref.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { SerializableClass, type Deserializer, type PromiseLikeType, type Serializer } from '@t4h.framework/core';
|
|
1
2
|
import type { ORM } from './ORM.js';
|
|
2
3
|
import type { EntityConstructor, EntityPartialData, SerializableRowRef } from '../typings/ORM.js';
|
|
3
|
-
export declare class Ref<T> {
|
|
4
|
+
export declare class Ref<T> extends SerializableClass {
|
|
4
5
|
private readonly orm;
|
|
5
6
|
private readonly entity;
|
|
6
7
|
private readonly ref;
|
|
@@ -8,5 +9,11 @@ export declare class Ref<T> {
|
|
|
8
9
|
getSnapshot(): Promise<T | null>;
|
|
9
10
|
update(data: EntityPartialData<T>): Promise<void>;
|
|
10
11
|
remove(): Promise<void>;
|
|
12
|
+
toSerializable(serializer: Serializer): Promise<{
|
|
13
|
+
orm: import("@t4h.framework/core").Serializable;
|
|
14
|
+
table: string;
|
|
15
|
+
ref: import("@t4h.framework/core").Serializable;
|
|
16
|
+
}>;
|
|
17
|
+
protected fromSerializable(serializable: PromiseLikeType<ReturnType<this['toSerializable']>>, deserializer: Deserializer): Promise<void>;
|
|
11
18
|
}
|
|
12
19
|
//# sourceMappingURL=Ref.d.ts.map
|
package/dist/models/Ref.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ref.d.ts","sourceRoot":"","sources":["../../src/models/Ref.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Ref.d.ts","sourceRoot":"","sources":["../../src/models/Ref.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EACjB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,UAAU,EAChB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAWnC,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAEnB,MAAM,mBAAmB,CAAA;AAM1B,qBAAa,GAAG,CAAC,CAAC,CAAE,SAAQ,iBAAiB;IAEzC,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAFH,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC5B,GAAG,EAAE,kBAAkB;IAK7B,WAAW,IAAI,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAgBhC,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBjD,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAQvB,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;CAOjB"}
|
package/dist/models/Ref.js
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import { History } from '@t4h.framework/core';
|
|
1
|
+
import { History, SerializableClass, } from '@t4h.framework/core';
|
|
2
2
|
import { ORMGetSnapshotActivity } from '../activities/ORMGetSnapshotActivity.js';
|
|
3
3
|
import { ORMRemoveActivity } from '../activities/ORMRemoveActivity.js';
|
|
4
4
|
import { ORMUpdateActivity } from '../activities/ORMUpdateActivity.js';
|
|
5
5
|
import { applyDefaultProperties } from '../constraints/apply-default-properties.js';
|
|
6
6
|
import { assertConstraints } from '../constraints/assert-constraints.js';
|
|
7
|
-
import { getEntityMetadata, getEntityTableName, } from '../decorators/metadata.js';
|
|
7
|
+
import { getEntityByTableName, getEntityMetadata, getEntityTableName, } from '../decorators/metadata.js';
|
|
8
8
|
const getSnapshotOp = History.bind(ORMGetSnapshotActivity);
|
|
9
9
|
const update = History.bind(ORMUpdateActivity);
|
|
10
10
|
const remove = History.bind(ORMRemoveActivity);
|
|
11
|
-
export class Ref {
|
|
11
|
+
export class Ref extends SerializableClass {
|
|
12
12
|
orm;
|
|
13
13
|
entity;
|
|
14
14
|
ref;
|
|
15
15
|
constructor(orm, entity, ref) {
|
|
16
|
+
super();
|
|
16
17
|
this.orm = orm;
|
|
17
18
|
this.entity = entity;
|
|
18
19
|
this.ref = ref;
|
|
@@ -49,5 +50,19 @@ export class Ref {
|
|
|
49
50
|
ref: this.ref,
|
|
50
51
|
});
|
|
51
52
|
}
|
|
53
|
+
async toSerializable(serializer) {
|
|
54
|
+
return {
|
|
55
|
+
orm: await serializer(this.orm),
|
|
56
|
+
table: getEntityTableName(this.entity),
|
|
57
|
+
ref: await serializer(this.ref),
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
async fromSerializable(serializable, deserializer) {
|
|
61
|
+
Object.assign(this, {
|
|
62
|
+
orm: await deserializer(serializable.orm),
|
|
63
|
+
entity: getEntityByTableName(serializable.table),
|
|
64
|
+
ref: await deserializer(serializable.ref),
|
|
65
|
+
});
|
|
66
|
+
}
|
|
52
67
|
}
|
|
53
68
|
//# sourceMappingURL=Ref.js.map
|
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,
|
|
1
|
+
{"version":3,"file":"Ref.js","sourceRoot":"","sources":["../../src/models/Ref.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
+
import { SerializableClass, type Deserializer, type PromiseLikeType, type Serializer } from '@t4h.framework/core';
|
|
1
2
|
import type { ORM } from './ORM.js';
|
|
2
3
|
import { Ref } from './Ref.js';
|
|
3
4
|
import type { EntityConstructor, SerializableRowRef } from '../typings/ORM.js';
|
|
4
|
-
export declare class RefCollection<T> {
|
|
5
|
+
export declare class RefCollection<T> extends SerializableClass {
|
|
5
6
|
private readonly refs;
|
|
7
|
+
toSerializable(serializer: Serializer): Promise<{
|
|
8
|
+
refs: import("@t4h.framework/core").Serializable[];
|
|
9
|
+
}>;
|
|
10
|
+
protected fromSerializable(serializable: PromiseLikeType<ReturnType<this['toSerializable']>>, deserializer: Deserializer): Promise<void>;
|
|
6
11
|
constructor(orm: ORM, entity: EntityConstructor<T>, refs: SerializableRowRef[]);
|
|
7
12
|
toArray(): Ref<T>[];
|
|
8
13
|
get length(): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RefCollection.d.ts","sourceRoot":"","sources":["../../src/models/RefCollection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAE9E,qBAAa,aAAa,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"RefCollection.d.ts","sourceRoot":"","sources":["../../src/models/RefCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,UAAU,EAChB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAE9E,qBAAa,aAAa,CAAC,CAAC,CAAE,SAAQ,iBAAiB;IACrD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAEnB,cAAc,CAAC,UAAU,EAAE,UAAU;;;cAMlC,gBAAgB,CAC9B,YAAY,EAAE,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EACjE,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,IAAI,CAAC;gBAOd,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC5B,IAAI,EAAE,kBAAkB,EAAE;IASrB,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,7 +1,21 @@
|
|
|
1
|
+
import { SerializableClass, } from '@t4h.framework/core';
|
|
1
2
|
import { Ref } from './Ref.js';
|
|
2
|
-
export class RefCollection {
|
|
3
|
+
export class RefCollection extends SerializableClass {
|
|
3
4
|
refs;
|
|
5
|
+
async toSerializable(serializer) {
|
|
6
|
+
return {
|
|
7
|
+
refs: await Promise.all(this.refs.map(ref => serializer(ref))),
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
async fromSerializable(serializable, deserializer) {
|
|
11
|
+
Object.assign(this, {
|
|
12
|
+
refs: await Promise.all(serializable.refs.map(ref => deserializer(ref))),
|
|
13
|
+
});
|
|
14
|
+
}
|
|
4
15
|
constructor(orm, entity, refs) {
|
|
16
|
+
super();
|
|
17
|
+
if (!refs)
|
|
18
|
+
return;
|
|
5
19
|
this.refs = refs.map(ref => new Ref(orm, entity, ref));
|
|
6
20
|
}
|
|
7
21
|
toArray() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RefCollection.js","sourceRoot":"","sources":["../../src/models/RefCollection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RefCollection.js","sourceRoot":"","sources":["../../src/models/RefCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,GAIlB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAG9B,MAAM,OAAO,aAAiB,SAAQ,iBAAiB;IACpC,IAAI,CAAW;IAEzB,KAAK,CAAC,cAAc,CAAC,UAAsB;QAChD,OAAO;YACL,IAAI,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;SAC/D,CAAA;IACH,CAAC;IAES,KAAK,CAAC,gBAAgB,CAC9B,YAAiE,EACjE,YAA0B;QAE1B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;YAClB,IAAI,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;SACzE,CAAC,CAAA;IACJ,CAAC;IAED,YACE,GAAQ,EACR,MAA4B,EAC5B,IAA0B;QAE1B,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,IAAI;YAAE,OAAM;QAEjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;IACxD,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;IAC1B,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA;IACzB,CAAC;IAEM,EAAE,CAAC,KAAa;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;IAEM,KAAK,CAAC,GAAG,CACd,EAAkD;QAElD,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;IACvC,CAAC;IAEM,KAAK,CAAC,OAAO,CAClB,EAAwD;QAExD,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;IACtC,CAAC;IAEM,KAAK,CAAC,MAAM,CACjB,EAA8D;QAE9D,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;IAC1C,CAAC;IAEM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAA;IACrC,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@t4h.framework/orm",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
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",
|
|
@@ -35,12 +35,12 @@
|
|
|
35
35
|
"reflect-metadata": "^0.2.2"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@t4h.framework/core": "^0.
|
|
38
|
+
"@t4h.framework/core": "^0.16.0",
|
|
39
39
|
"typescript": "^5.9.3",
|
|
40
40
|
"vitest": "^4.0.18"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
43
|
-
"@t4h.framework/core": "
|
|
43
|
+
"@t4h.framework/core": ">=0.15.0 <1.0.0"
|
|
44
44
|
},
|
|
45
45
|
"packageManager": "yarn@4.12.0",
|
|
46
46
|
"engines": {
|