@mikro-orm/core 6.6.4-dev.4 → 6.6.4-dev.6

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.
@@ -4,11 +4,12 @@ import { type AssignOptions } from './EntityAssigner';
4
4
  import type { EntityLoaderOptions } from './EntityLoader';
5
5
  import { type SerializeOptions } from '../serialization/EntitySerializer';
6
6
  import type { FindOneOptions } from '../drivers/IDatabaseDriver';
7
+ import type { PopulatePath } from '../enums';
7
8
  export declare abstract class BaseEntity {
8
9
  isInitialized(): boolean;
9
10
  isTouched(): boolean;
10
11
  populated(populated?: boolean): void;
11
- populate<Entity extends this = this, Hint extends string = never>(populate: AutoPath<Entity, Hint>[] | false, options?: EntityLoaderOptions<Entity>): Promise<Loaded<Entity, Hint>>;
12
+ populate<Entity extends this = this, Hint extends string = never>(populate: AutoPath<Entity, Hint, PopulatePath.ALL>[] | false, options?: EntityLoaderOptions<Entity>): Promise<Loaded<Entity, Hint>>;
12
13
  toReference<Entity extends this = this>(): Ref<Entity> & LoadedReference<Loaded<Entity, AddEager<Entity>>>;
13
14
  toObject<Entity extends this = this>(): EntityDTO<Entity>;
14
15
  toObject<Entity extends this = this>(ignoreFields: never[]): EntityDTO<Entity>;
@@ -220,6 +220,11 @@ class EntityHelper {
220
220
  (0, wrap_1.helper)(other).__em?.getUnitOfWork().scheduleOrphanRemoval(other);
221
221
  }
222
222
  }
223
+ // Skip setting the inverse side to null if it's a primary key - the entity will be removed via orphan removal
224
+ // Setting a primary key to null would corrupt the entity and cause validation errors
225
+ if (value == null && prop.orphanRemoval && prop2.primary) {
226
+ return;
227
+ }
223
228
  if (value == null) {
224
229
  entity[prop2.name] = value;
225
230
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mikro-orm/core",
3
- "version": "6.6.4-dev.4",
3
+ "version": "6.6.4-dev.6",
4
4
  "description": "TypeScript ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, MySQL, PostgreSQL and SQLite databases as well as usage with vanilla JavaScript.",
5
5
  "main": "index.js",
6
6
  "module": "index.mjs",
@@ -64,7 +64,7 @@
64
64
  "esprima": "4.0.1",
65
65
  "fs-extra": "11.3.3",
66
66
  "globby": "11.1.0",
67
- "mikro-orm": "6.6.4-dev.4",
67
+ "mikro-orm": "6.6.4-dev.6",
68
68
  "reflect-metadata": "0.2.2"
69
69
  }
70
70
  }
package/typings.d.ts CHANGED
@@ -154,7 +154,7 @@ export interface IWrappedEntity<Entity extends object> {
154
154
  isTouched(): boolean;
155
155
  isManaged(): boolean;
156
156
  populated(populated?: boolean): void;
157
- populate<Hint extends string = never>(populate: AutoPath<Entity, Hint>[] | false, options?: EntityLoaderOptions<Entity>): Promise<Loaded<Entity, Hint>>;
157
+ populate<Hint extends string = never>(populate: readonly AutoPath<Entity, Hint, PopulatePath.ALL>[] | false, options?: EntityLoaderOptions<Entity>): Promise<Loaded<Entity, Hint>>;
158
158
  init<Hint extends string = never, Fields extends string = '*', Exclude extends string = never>(options?: FindOneOptions<Entity, Hint, Fields, Exclude>): Promise<Loaded<Entity, Hint, Fields, Exclude> | null>;
159
159
  toReference(): Ref<Entity> & LoadedReference<Loaded<Entity, AddEager<Entity>>>;
160
160
  toObject(): EntityDTO<Entity>;