@mikro-orm/core 7.0.2-dev.8 → 7.0.2

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.
Files changed (207) hide show
  1. package/EntityManager.d.ts +883 -579
  2. package/EntityManager.js +1897 -1865
  3. package/MikroORM.d.ts +103 -72
  4. package/MikroORM.js +178 -177
  5. package/README.md +128 -294
  6. package/cache/CacheAdapter.d.ts +38 -36
  7. package/cache/FileCacheAdapter.d.ts +30 -24
  8. package/cache/FileCacheAdapter.js +80 -78
  9. package/cache/GeneratedCacheAdapter.d.ts +19 -20
  10. package/cache/GeneratedCacheAdapter.js +31 -30
  11. package/cache/MemoryCacheAdapter.d.ts +19 -20
  12. package/cache/MemoryCacheAdapter.js +36 -36
  13. package/cache/NullCacheAdapter.d.ts +17 -16
  14. package/cache/NullCacheAdapter.js +25 -24
  15. package/connections/Connection.d.ts +99 -75
  16. package/connections/Connection.js +166 -160
  17. package/drivers/DatabaseDriver.d.ts +187 -69
  18. package/drivers/DatabaseDriver.js +451 -432
  19. package/drivers/IDatabaseDriver.d.ts +464 -281
  20. package/drivers/IDatabaseDriver.js +1 -0
  21. package/entity/BaseEntity.d.ts +121 -73
  22. package/entity/BaseEntity.js +44 -33
  23. package/entity/Collection.d.ts +216 -157
  24. package/entity/Collection.js +728 -707
  25. package/entity/EntityAssigner.d.ts +90 -76
  26. package/entity/EntityAssigner.js +232 -229
  27. package/entity/EntityFactory.d.ts +68 -40
  28. package/entity/EntityFactory.js +427 -366
  29. package/entity/EntityHelper.d.ts +34 -22
  30. package/entity/EntityHelper.js +280 -267
  31. package/entity/EntityIdentifier.d.ts +4 -4
  32. package/entity/EntityIdentifier.js +10 -10
  33. package/entity/EntityLoader.d.ts +105 -56
  34. package/entity/EntityLoader.js +754 -722
  35. package/entity/EntityRepository.d.ts +317 -200
  36. package/entity/EntityRepository.js +214 -212
  37. package/entity/PolymorphicRef.d.ts +5 -5
  38. package/entity/PolymorphicRef.js +10 -10
  39. package/entity/Reference.d.ts +130 -66
  40. package/entity/Reference.js +280 -260
  41. package/entity/WrappedEntity.d.ts +116 -53
  42. package/entity/WrappedEntity.js +169 -147
  43. package/entity/defineEntity.d.ts +1290 -614
  44. package/entity/defineEntity.js +521 -511
  45. package/entity/utils.d.ts +13 -3
  46. package/entity/utils.js +71 -73
  47. package/entity/validators.js +43 -43
  48. package/entity/wrap.js +8 -8
  49. package/enums.d.ts +275 -138
  50. package/enums.js +268 -137
  51. package/errors.d.ts +120 -72
  52. package/errors.js +356 -253
  53. package/events/EventManager.d.ts +27 -10
  54. package/events/EventManager.js +80 -73
  55. package/events/EventSubscriber.d.ts +33 -29
  56. package/events/TransactionEventBroadcaster.d.ts +16 -7
  57. package/events/TransactionEventBroadcaster.js +15 -13
  58. package/exceptions.d.ts +23 -40
  59. package/exceptions.js +35 -52
  60. package/hydration/Hydrator.d.ts +43 -16
  61. package/hydration/Hydrator.js +44 -42
  62. package/hydration/ObjectHydrator.d.ts +51 -17
  63. package/hydration/ObjectHydrator.js +480 -416
  64. package/index.d.ts +116 -2
  65. package/index.js +10 -1
  66. package/logging/DefaultLogger.d.ts +35 -30
  67. package/logging/DefaultLogger.js +87 -84
  68. package/logging/Logger.d.ts +45 -40
  69. package/logging/SimpleLogger.d.ts +13 -11
  70. package/logging/SimpleLogger.js +22 -22
  71. package/logging/colors.d.ts +6 -6
  72. package/logging/colors.js +11 -10
  73. package/logging/inspect.js +7 -7
  74. package/metadata/EntitySchema.d.ts +214 -108
  75. package/metadata/EntitySchema.js +398 -379
  76. package/metadata/MetadataDiscovery.d.ts +115 -111
  77. package/metadata/MetadataDiscovery.js +1948 -1857
  78. package/metadata/MetadataProvider.d.ts +25 -14
  79. package/metadata/MetadataProvider.js +83 -77
  80. package/metadata/MetadataStorage.d.ts +39 -19
  81. package/metadata/MetadataStorage.js +119 -106
  82. package/metadata/MetadataValidator.d.ts +39 -39
  83. package/metadata/MetadataValidator.js +381 -338
  84. package/metadata/discover-entities.d.ts +5 -2
  85. package/metadata/discover-entities.js +27 -27
  86. package/metadata/types.d.ts +615 -531
  87. package/naming-strategy/AbstractNamingStrategy.d.ts +55 -39
  88. package/naming-strategy/AbstractNamingStrategy.js +91 -85
  89. package/naming-strategy/EntityCaseNamingStrategy.d.ts +6 -6
  90. package/naming-strategy/EntityCaseNamingStrategy.js +22 -22
  91. package/naming-strategy/MongoNamingStrategy.d.ts +7 -6
  92. package/naming-strategy/MongoNamingStrategy.js +19 -18
  93. package/naming-strategy/NamingStrategy.d.ts +109 -99
  94. package/naming-strategy/UnderscoreNamingStrategy.d.ts +8 -7
  95. package/naming-strategy/UnderscoreNamingStrategy.js +22 -21
  96. package/not-supported.js +7 -4
  97. package/package.json +1 -1
  98. package/platforms/ExceptionConverter.d.ts +2 -1
  99. package/platforms/ExceptionConverter.js +5 -4
  100. package/platforms/Platform.d.ts +310 -236
  101. package/platforms/Platform.js +661 -573
  102. package/serialization/EntitySerializer.d.ts +49 -25
  103. package/serialization/EntitySerializer.js +224 -216
  104. package/serialization/EntityTransformer.d.ts +11 -5
  105. package/serialization/EntityTransformer.js +220 -216
  106. package/serialization/SerializationContext.d.ts +27 -18
  107. package/serialization/SerializationContext.js +105 -100
  108. package/types/ArrayType.d.ts +9 -8
  109. package/types/ArrayType.js +34 -33
  110. package/types/BigIntType.d.ts +17 -10
  111. package/types/BigIntType.js +37 -37
  112. package/types/BlobType.d.ts +4 -3
  113. package/types/BlobType.js +14 -13
  114. package/types/BooleanType.d.ts +5 -4
  115. package/types/BooleanType.js +13 -12
  116. package/types/CharacterType.d.ts +3 -2
  117. package/types/CharacterType.js +7 -6
  118. package/types/DateTimeType.d.ts +6 -5
  119. package/types/DateTimeType.js +16 -15
  120. package/types/DateType.d.ts +6 -5
  121. package/types/DateType.js +16 -15
  122. package/types/DecimalType.d.ts +7 -7
  123. package/types/DecimalType.js +26 -26
  124. package/types/DoubleType.d.ts +3 -3
  125. package/types/DoubleType.js +12 -12
  126. package/types/EnumArrayType.d.ts +6 -5
  127. package/types/EnumArrayType.js +25 -24
  128. package/types/EnumType.d.ts +4 -3
  129. package/types/EnumType.js +12 -11
  130. package/types/FloatType.d.ts +4 -3
  131. package/types/FloatType.js +10 -9
  132. package/types/IntegerType.d.ts +4 -3
  133. package/types/IntegerType.js +10 -9
  134. package/types/IntervalType.d.ts +5 -4
  135. package/types/IntervalType.js +13 -12
  136. package/types/JsonType.d.ts +9 -8
  137. package/types/JsonType.js +33 -32
  138. package/types/MediumIntType.d.ts +2 -1
  139. package/types/MediumIntType.js +4 -3
  140. package/types/SmallIntType.d.ts +4 -3
  141. package/types/SmallIntType.js +10 -9
  142. package/types/StringType.d.ts +5 -4
  143. package/types/StringType.js +13 -12
  144. package/types/TextType.d.ts +4 -3
  145. package/types/TextType.js +10 -9
  146. package/types/TimeType.d.ts +6 -5
  147. package/types/TimeType.js +18 -17
  148. package/types/TinyIntType.d.ts +4 -3
  149. package/types/TinyIntType.js +11 -10
  150. package/types/Type.d.ts +88 -73
  151. package/types/Type.js +85 -74
  152. package/types/Uint8ArrayType.d.ts +5 -4
  153. package/types/Uint8ArrayType.js +22 -21
  154. package/types/UnknownType.d.ts +5 -4
  155. package/types/UnknownType.js +13 -12
  156. package/types/UuidType.d.ts +6 -5
  157. package/types/UuidType.js +20 -19
  158. package/types/index.d.ts +77 -49
  159. package/types/index.js +64 -26
  160. package/typings.d.ts +1388 -729
  161. package/typings.js +255 -231
  162. package/unit-of-work/ChangeSet.d.ts +28 -24
  163. package/unit-of-work/ChangeSet.js +58 -54
  164. package/unit-of-work/ChangeSetComputer.d.ts +13 -11
  165. package/unit-of-work/ChangeSetComputer.js +180 -159
  166. package/unit-of-work/ChangeSetPersister.d.ts +64 -41
  167. package/unit-of-work/ChangeSetPersister.js +443 -418
  168. package/unit-of-work/CommitOrderCalculator.d.ts +40 -40
  169. package/unit-of-work/CommitOrderCalculator.js +89 -88
  170. package/unit-of-work/IdentityMap.d.ts +32 -25
  171. package/unit-of-work/IdentityMap.js +106 -99
  172. package/unit-of-work/UnitOfWork.d.ts +182 -127
  173. package/unit-of-work/UnitOfWork.js +1201 -1169
  174. package/utils/AbstractMigrator.d.ts +111 -91
  175. package/utils/AbstractMigrator.js +275 -275
  176. package/utils/AbstractSchemaGenerator.d.ts +43 -34
  177. package/utils/AbstractSchemaGenerator.js +121 -122
  178. package/utils/AsyncContext.d.ts +3 -3
  179. package/utils/AsyncContext.js +34 -35
  180. package/utils/Configuration.d.ts +853 -801
  181. package/utils/Configuration.js +360 -337
  182. package/utils/Cursor.d.ts +40 -22
  183. package/utils/Cursor.js +135 -127
  184. package/utils/DataloaderUtils.d.ts +58 -43
  185. package/utils/DataloaderUtils.js +203 -198
  186. package/utils/EntityComparator.d.ts +99 -80
  187. package/utils/EntityComparator.js +825 -727
  188. package/utils/NullHighlighter.d.ts +2 -1
  189. package/utils/NullHighlighter.js +4 -3
  190. package/utils/QueryHelper.d.ts +79 -51
  191. package/utils/QueryHelper.js +372 -361
  192. package/utils/RawQueryFragment.d.ts +54 -28
  193. package/utils/RawQueryFragment.js +110 -99
  194. package/utils/RequestContext.d.ts +33 -32
  195. package/utils/RequestContext.js +52 -53
  196. package/utils/TransactionContext.d.ts +17 -16
  197. package/utils/TransactionContext.js +28 -27
  198. package/utils/TransactionManager.d.ts +58 -58
  199. package/utils/TransactionManager.js +199 -197
  200. package/utils/Utils.d.ts +210 -145
  201. package/utils/Utils.js +820 -813
  202. package/utils/clone.js +104 -113
  203. package/utils/env-vars.js +90 -88
  204. package/utils/fs-utils.d.ts +15 -15
  205. package/utils/fs-utils.js +180 -181
  206. package/utils/upsert-utils.d.ts +20 -5
  207. package/utils/upsert-utils.js +114 -116
@@ -1,83 +1,97 @@
1
1
  import type { EntityManager } from '../EntityManager.js';
2
2
  import type { EntityData, EntityDTO, EntityProperty, FromEntityType, IsSubset, MergeSelected } from '../typings.js';
3
+ /** Handles assigning data to entities, resolving relations, and propagating changes. */
3
4
  export declare class EntityAssigner {
4
- static assign<Entity extends object, Naked extends FromEntityType<Entity> = FromEntityType<Entity>, Convert extends boolean = false, Data extends EntityData<Naked, Convert> | Partial<EntityDTO<Naked>> = EntityData<Naked, Convert> | Partial<EntityDTO<Naked>>>(entity: Entity, data: Data & IsSubset<EntityData<Naked, Convert>, Data>, options?: AssignOptions<Convert>): MergeSelected<Entity, Naked, keyof Data & string>;
5
- private static assignProperty;
6
- /**
7
- * auto-wire 1:1 inverse side with owner as in no-sql drivers it can't be joined
8
- * also makes sure the link is bidirectional when creating new entities from nested structures
9
- * @internal
10
- */
11
- static autoWireOneToOne<T extends object, O extends object>(prop: EntityProperty<O, T>, entity: O): void;
12
- private static validateEM;
13
- private static assignReference;
14
- private static assignCollection;
15
- private static assignEmbeddable;
16
- private static createCollectionItem;
5
+ /** Assigns the given data to the entity, resolving relations and handling custom types. */
6
+ static assign<
7
+ Entity extends object,
8
+ Naked extends FromEntityType<Entity> = FromEntityType<Entity>,
9
+ Convert extends boolean = false,
10
+ Data extends EntityData<Naked, Convert> | Partial<EntityDTO<Naked>> =
11
+ | EntityData<Naked, Convert>
12
+ | Partial<EntityDTO<Naked>>,
13
+ >(
14
+ entity: Entity,
15
+ data: Data & IsSubset<EntityData<Naked, Convert>, Data>,
16
+ options?: AssignOptions<Convert>,
17
+ ): MergeSelected<Entity, Naked, keyof Data & string>;
18
+ private static assignProperty;
19
+ /**
20
+ * auto-wire 1:1 inverse side with owner as in no-sql drivers it can't be joined
21
+ * also makes sure the link is bidirectional when creating new entities from nested structures
22
+ * @internal
23
+ */
24
+ static autoWireOneToOne<T extends object, O extends object>(prop: EntityProperty<O, T>, entity: O): void;
25
+ private static validateEM;
26
+ private static assignReference;
27
+ private static assignCollection;
28
+ private static assignEmbeddable;
29
+ private static createCollectionItem;
17
30
  }
18
31
  export declare const assign: typeof EntityAssigner.assign;
32
+ /** Options controlling how data is assigned to an entity via `assign()`. */
19
33
  export interface AssignOptions<Convert extends boolean> {
20
- /**
21
- * Allows disabling processing of nested relations. When disabled, an object payload in place of a relation always
22
- * results in an `INSERT` query. To assign a value of the relation, use the foreign key instead of an object.
23
- * Defaults to `true`.
24
- */
25
- updateNestedEntities?: boolean;
26
- /**
27
- * When assigning to a relation property with object payload and `updateNestedEntities` enabled (default), you can
28
- * control how a payload without a primary key is handled. By default, it is considered as a new object, resulting
29
- * in an `INSERT` query. Use `updateByPrimaryKey: false` to allow assigning the data on an existing relation instead.
30
- * Defaults to `true`.
31
- */
32
- updateByPrimaryKey?: boolean;
33
- /**
34
- * When you have some properties in the payload that are not represented by an entity property mapping, you can skip
35
- * such unknown properties via `onlyProperties: true`. Defaults to `false`.
36
- */
37
- onlyProperties?: boolean;
38
- /**
39
- * With `onlyOwnProperties` enabled, inverse sides of to-many relations are skipped, and payloads of other relations are converted
40
- * to foreign keys. Defaults to `false`.
41
- */
42
- onlyOwnProperties?: boolean;
43
- /**
44
- * With `ignoreUndefined` enabled, `undefined` properties passed in the payload are skipped. Defaults to `false`.
45
- */
46
- ignoreUndefined?: boolean;
47
- /**
48
- * `assign` excepts runtime values for properties using custom types. To be able to assign raw database values, you
49
- * can enable the `convertCustomTypes` option. Defaults to `false`.
50
- */
51
- convertCustomTypes?: Convert;
52
- /**
53
- * When assigning to a JSON property, the value is replaced. Use `mergeObjectProperties: true` to enable deep merging
54
- * of the payload with the existing value. Defaults to `false`.
55
- */
56
- mergeObjectProperties?: boolean;
57
- /**
58
- * When assigning to an embedded property, the values are deeply merged with the existing data.
59
- * Use `mergeEmbeddedProperties: false` to replace them instead. Defaults to `true`.
60
- */
61
- mergeEmbeddedProperties?: boolean;
62
- /**
63
- * When assigning to a relation property, if the value is a POJO and `updateByPrimaryKey` is enabled, we check if
64
- * the target exists in the identity map based on its primary key and call `assign` on it recursively. If there is
65
- * no primary key provided, or the entity is not present in the context, such an entity is considered as new
66
- * (resulting in `INSERT` query), created via `em.create()`. You can use `merge: true` to use `em.merge()` instead,
67
- * which means there won't be any query used for persisting the relation. Defaults to `false`.
68
- */
69
- merge?: boolean;
70
- /**
71
- * When assigning to a to-many relation properties (`Collection`) with `updateNestedEntities` and `updateByPrimaryKey`
72
- * enabled (default), you can use this option to override the relation schema. This is used only when trying to find
73
- * the entity reference in the current context. If it is not found, we create the relation entity using the target
74
- * entity schema. The value is automatically inferred from the target entity.
75
- */
76
- schema?: string;
77
- /**
78
- * When using the static `assign()` helper, you can pass the EntityManager instance explicitly via the `em` option.
79
- * This is only needed when you try to assign a relation property. The value is automatically inferred from the target
80
- * entity when it is managed, or when you use `em.assign()` instead.
81
- */
82
- em?: EntityManager;
34
+ /**
35
+ * Allows disabling processing of nested relations. When disabled, an object payload in place of a relation always
36
+ * results in an `INSERT` query. To assign a value of the relation, use the foreign key instead of an object.
37
+ * Defaults to `true`.
38
+ */
39
+ updateNestedEntities?: boolean;
40
+ /**
41
+ * When assigning to a relation property with object payload and `updateNestedEntities` enabled (default), you can
42
+ * control how a payload without a primary key is handled. By default, it is considered as a new object, resulting
43
+ * in an `INSERT` query. Use `updateByPrimaryKey: false` to allow assigning the data on an existing relation instead.
44
+ * Defaults to `true`.
45
+ */
46
+ updateByPrimaryKey?: boolean;
47
+ /**
48
+ * When you have some properties in the payload that are not represented by an entity property mapping, you can skip
49
+ * such unknown properties via `onlyProperties: true`. Defaults to `false`.
50
+ */
51
+ onlyProperties?: boolean;
52
+ /**
53
+ * With `onlyOwnProperties` enabled, inverse sides of to-many relations are skipped, and payloads of other relations are converted
54
+ * to foreign keys. Defaults to `false`.
55
+ */
56
+ onlyOwnProperties?: boolean;
57
+ /**
58
+ * With `ignoreUndefined` enabled, `undefined` properties passed in the payload are skipped. Defaults to `false`.
59
+ */
60
+ ignoreUndefined?: boolean;
61
+ /**
62
+ * `assign` excepts runtime values for properties using custom types. To be able to assign raw database values, you
63
+ * can enable the `convertCustomTypes` option. Defaults to `false`.
64
+ */
65
+ convertCustomTypes?: Convert;
66
+ /**
67
+ * When assigning to a JSON property, the value is replaced. Use `mergeObjectProperties: true` to enable deep merging
68
+ * of the payload with the existing value. Defaults to `false`.
69
+ */
70
+ mergeObjectProperties?: boolean;
71
+ /**
72
+ * When assigning to an embedded property, the values are deeply merged with the existing data.
73
+ * Use `mergeEmbeddedProperties: false` to replace them instead. Defaults to `true`.
74
+ */
75
+ mergeEmbeddedProperties?: boolean;
76
+ /**
77
+ * When assigning to a relation property, if the value is a POJO and `updateByPrimaryKey` is enabled, we check if
78
+ * the target exists in the identity map based on its primary key and call `assign` on it recursively. If there is
79
+ * no primary key provided, or the entity is not present in the context, such an entity is considered as new
80
+ * (resulting in `INSERT` query), created via `em.create()`. You can use `merge: true` to use `em.merge()` instead,
81
+ * which means there won't be any query used for persisting the relation. Defaults to `false`.
82
+ */
83
+ merge?: boolean;
84
+ /**
85
+ * When assigning to a to-many relation properties (`Collection`) with `updateNestedEntities` and `updateByPrimaryKey`
86
+ * enabled (default), you can use this option to override the relation schema. This is used only when trying to find
87
+ * the entity reference in the current context. If it is not found, we create the relation entity using the target
88
+ * entity schema. The value is automatically inferred from the target entity.
89
+ */
90
+ schema?: string;
91
+ /**
92
+ * When using the static `assign()` helper, you can pass the EntityManager instance explicitly via the `em` option.
93
+ * This is only needed when you try to assign a relation property. The value is automatically inferred from the target
94
+ * entity when it is managed, or when you use `em.assign()` instead.
95
+ */
96
+ em?: EntityManager;
83
97
  }