@mikro-orm/core 7.0.0-dev.99 → 7.0.0-rc.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/EntityManager.d.ts +34 -17
- package/EntityManager.js +95 -103
- package/MikroORM.d.ts +5 -5
- package/MikroORM.js +25 -20
- package/cache/FileCacheAdapter.js +11 -3
- package/connections/Connection.d.ts +3 -2
- package/connections/Connection.js +4 -3
- package/drivers/DatabaseDriver.d.ts +11 -11
- package/drivers/DatabaseDriver.js +91 -25
- package/drivers/IDatabaseDriver.d.ts +50 -20
- package/entity/BaseEntity.d.ts +61 -1
- package/entity/Collection.d.ts +8 -1
- package/entity/Collection.js +12 -13
- package/entity/EntityAssigner.js +9 -9
- package/entity/EntityFactory.d.ts +6 -1
- package/entity/EntityFactory.js +40 -22
- package/entity/EntityHelper.d.ts +2 -2
- package/entity/EntityHelper.js +27 -4
- package/entity/EntityLoader.d.ts +5 -4
- package/entity/EntityLoader.js +193 -80
- package/entity/EntityRepository.d.ts +27 -7
- package/entity/EntityRepository.js +8 -2
- package/entity/PolymorphicRef.d.ts +12 -0
- package/entity/PolymorphicRef.js +18 -0
- package/entity/WrappedEntity.d.ts +2 -2
- package/entity/WrappedEntity.js +1 -1
- package/entity/defineEntity.d.ts +89 -50
- package/entity/defineEntity.js +12 -0
- package/entity/index.d.ts +1 -0
- package/entity/index.js +1 -0
- package/entity/utils.d.ts +6 -1
- package/entity/utils.js +33 -0
- package/entity/validators.js +2 -2
- package/enums.d.ts +2 -2
- package/enums.js +1 -0
- package/errors.d.ts +16 -8
- package/errors.js +40 -13
- package/hydration/ObjectHydrator.js +63 -21
- package/index.d.ts +1 -1
- package/logging/colors.d.ts +1 -1
- package/logging/colors.js +7 -6
- package/logging/inspect.js +1 -6
- package/metadata/EntitySchema.d.ts +43 -13
- package/metadata/EntitySchema.js +82 -27
- package/metadata/MetadataDiscovery.d.ts +60 -3
- package/metadata/MetadataDiscovery.js +665 -154
- package/metadata/MetadataProvider.js +3 -1
- package/metadata/MetadataStorage.d.ts +13 -6
- package/metadata/MetadataStorage.js +64 -19
- package/metadata/MetadataValidator.d.ts +32 -2
- package/metadata/MetadataValidator.js +196 -31
- package/metadata/discover-entities.js +5 -5
- package/metadata/types.d.ts +111 -14
- package/naming-strategy/AbstractNamingStrategy.d.ts +11 -3
- package/naming-strategy/AbstractNamingStrategy.js +12 -0
- package/naming-strategy/EntityCaseNamingStrategy.d.ts +3 -3
- package/naming-strategy/EntityCaseNamingStrategy.js +6 -5
- package/naming-strategy/MongoNamingStrategy.d.ts +3 -3
- package/naming-strategy/MongoNamingStrategy.js +6 -6
- package/naming-strategy/NamingStrategy.d.ts +17 -3
- package/naming-strategy/UnderscoreNamingStrategy.d.ts +3 -3
- package/naming-strategy/UnderscoreNamingStrategy.js +6 -6
- package/package.json +2 -2
- package/platforms/Platform.d.ts +4 -2
- package/platforms/Platform.js +5 -2
- package/serialization/EntitySerializer.d.ts +3 -0
- package/serialization/EntitySerializer.js +15 -13
- package/serialization/EntityTransformer.js +6 -6
- package/serialization/SerializationContext.d.ts +6 -6
- package/typings.d.ts +325 -110
- package/typings.js +84 -17
- package/unit-of-work/ChangeSet.d.ts +4 -3
- package/unit-of-work/ChangeSet.js +2 -3
- package/unit-of-work/ChangeSetComputer.d.ts +3 -6
- package/unit-of-work/ChangeSetComputer.js +34 -13
- package/unit-of-work/ChangeSetPersister.d.ts +12 -10
- package/unit-of-work/ChangeSetPersister.js +55 -25
- package/unit-of-work/CommitOrderCalculator.d.ts +12 -10
- package/unit-of-work/CommitOrderCalculator.js +13 -13
- package/unit-of-work/IdentityMap.d.ts +12 -0
- package/unit-of-work/IdentityMap.js +39 -1
- package/unit-of-work/UnitOfWork.d.ts +21 -3
- package/unit-of-work/UnitOfWork.js +203 -56
- package/utils/AbstractSchemaGenerator.js +17 -8
- package/utils/AsyncContext.d.ts +6 -0
- package/utils/AsyncContext.js +42 -0
- package/utils/Configuration.d.ts +52 -11
- package/utils/Configuration.js +12 -8
- package/utils/Cursor.js +21 -8
- package/utils/DataloaderUtils.js +13 -11
- package/utils/EntityComparator.d.ts +14 -7
- package/utils/EntityComparator.js +132 -46
- package/utils/QueryHelper.d.ts +16 -6
- package/utils/QueryHelper.js +53 -18
- package/utils/RawQueryFragment.d.ts +28 -23
- package/utils/RawQueryFragment.js +34 -56
- package/utils/RequestContext.js +2 -2
- package/utils/TransactionContext.js +2 -2
- package/utils/TransactionManager.js +1 -1
- package/utils/Utils.d.ts +7 -26
- package/utils/Utils.js +25 -79
- package/utils/clone.js +7 -21
- package/utils/env-vars.d.ts +4 -0
- package/utils/env-vars.js +13 -3
- package/utils/fs-utils.d.ts +21 -0
- package/utils/fs-utils.js +106 -11
- package/utils/upsert-utils.d.ts +4 -4
|
@@ -57,19 +57,19 @@ export class EntityTransformer {
|
|
|
57
57
|
if (!visible) {
|
|
58
58
|
continue;
|
|
59
59
|
}
|
|
60
|
-
const populated = root.isMarkedAsPopulated(meta.
|
|
61
|
-
const partiallyLoaded = root.isPartiallyLoaded(meta.
|
|
60
|
+
const populated = root.isMarkedAsPopulated(meta.class, prop);
|
|
61
|
+
const partiallyLoaded = root.isPartiallyLoaded(meta.class, prop);
|
|
62
62
|
const isPrimary = includePrimaryKeys && meta.properties[prop].primary;
|
|
63
63
|
if (!partiallyLoaded && !populated && !isPrimary) {
|
|
64
64
|
continue;
|
|
65
65
|
}
|
|
66
|
-
const cycle = root.visit(meta.
|
|
66
|
+
const cycle = root.visit(meta.class, prop);
|
|
67
67
|
if (cycle && visited) {
|
|
68
68
|
continue;
|
|
69
69
|
}
|
|
70
70
|
const val = EntityTransformer.processProperty(prop, entity, raw, populated);
|
|
71
71
|
if (!cycle) {
|
|
72
|
-
root.leave(meta.
|
|
72
|
+
root.leave(meta.class, prop);
|
|
73
73
|
}
|
|
74
74
|
if (isRaw(val)) {
|
|
75
75
|
throw new Error(`Trying to serialize raw SQL fragment: '${val.sql}'`);
|
|
@@ -86,7 +86,7 @@ export class EntityTransformer {
|
|
|
86
86
|
// decorated get methods
|
|
87
87
|
if (prop.getterName != null) {
|
|
88
88
|
const visible = !prop.hidden && entity[prop.getterName] instanceof Function;
|
|
89
|
-
const populated = root.isMarkedAsPopulated(meta.
|
|
89
|
+
const populated = root.isMarkedAsPopulated(meta.class, prop.name);
|
|
90
90
|
if (visible) {
|
|
91
91
|
ret[this.propertyName(meta, prop.name, raw)] = this.processProperty(prop.getterName, entity, raw, populated);
|
|
92
92
|
}
|
|
@@ -94,7 +94,7 @@ export class EntityTransformer {
|
|
|
94
94
|
else {
|
|
95
95
|
// decorated getters
|
|
96
96
|
const visible = !prop.hidden && typeof entity[prop.name] !== 'undefined';
|
|
97
|
-
const populated = root.isMarkedAsPopulated(meta.
|
|
97
|
+
const populated = root.isMarkedAsPopulated(meta.class, prop.name);
|
|
98
98
|
if (visible) {
|
|
99
99
|
ret[this.propertyName(meta, prop.name, raw)] = this.processProperty(prop.name, entity, raw, populated);
|
|
100
100
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AnyEntity, EntityMetadata, PopulateOptions } from '../typings.js';
|
|
1
|
+
import type { AnyEntity, EntityMetadata, EntityName, PopulateOptions } from '../typings.js';
|
|
2
2
|
import type { Configuration } from '../utils/Configuration.js';
|
|
3
3
|
/**
|
|
4
4
|
* Helper that allows to keep track of where we are currently at when serializing complex entity graph with cycles.
|
|
@@ -10,21 +10,21 @@ export declare class SerializationContext<T extends object> {
|
|
|
10
10
|
private readonly populate;
|
|
11
11
|
private readonly fields?;
|
|
12
12
|
private readonly exclude?;
|
|
13
|
-
readonly path: [
|
|
13
|
+
readonly path: [EntityName, string][];
|
|
14
14
|
readonly visited: Set<Partial<any>>;
|
|
15
15
|
private entities;
|
|
16
16
|
constructor(config: Configuration, populate?: PopulateOptions<T>[], fields?: Set<string> | undefined, exclude?: string[] | undefined);
|
|
17
17
|
/**
|
|
18
18
|
* Returns true when there is a cycle detected.
|
|
19
19
|
*/
|
|
20
|
-
visit(entityName:
|
|
21
|
-
leave
|
|
20
|
+
visit(entityName: EntityName, prop: string): boolean;
|
|
21
|
+
leave(entityName: EntityName, prop: string): void;
|
|
22
22
|
close(): void;
|
|
23
23
|
/**
|
|
24
24
|
* When initializing new context, we need to propagate it to the whole entity graph recursively.
|
|
25
25
|
*/
|
|
26
26
|
static propagate(root: SerializationContext<any>, entity: AnyEntity, isVisible: (meta: EntityMetadata, prop: string) => boolean): void;
|
|
27
|
-
isMarkedAsPopulated(entityName:
|
|
28
|
-
isPartiallyLoaded(entityName:
|
|
27
|
+
isMarkedAsPopulated(entityName: EntityName, prop: string): boolean;
|
|
28
|
+
isPartiallyLoaded(entityName: EntityName, prop: string): boolean;
|
|
29
29
|
private register;
|
|
30
30
|
}
|