@mikro-orm/core 6.3.10-dev.13 → 6.3.10-dev.15

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/MikroORM.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { EntityManagerType, IDatabaseDriver } from './drivers';
2
- import { MetadataStorage } from './metadata';
2
+ import { MetadataStorage, type EntitySchema } from './metadata';
3
3
  import { Configuration, type Options } from './utils';
4
4
  import type { EntityManager } from './EntityManager';
5
5
  import type { Constructor, EntityMetadata, EntityName, IEntityGenerator, IMigrator, ISeedManager } from './typings';
@@ -66,7 +66,7 @@ export declare class MikroORM<D extends IDatabaseDriver = IDatabaseDriver, EM ex
66
66
  /**
67
67
  * Allows dynamically discovering new entity by reference, handy for testing schema diffing.
68
68
  */
69
- discoverEntity(entities: Constructor | Constructor[]): void;
69
+ discoverEntity<T extends Constructor | EntitySchema>(entities: T | T[]): void;
70
70
  /**
71
71
  * Gets the SchemaGenerator.
72
72
  */
package/MikroORM.js CHANGED
@@ -192,7 +192,10 @@ class MikroORM {
192
192
  const options = this.config.get('discovery');
193
193
  new metadata_1.MetadataValidator().validateDiscovered([...Object.values(this.metadata.getAll()), ...tmp], options);
194
194
  const metadata = this.discovery.processDiscoveredEntities(tmp);
195
- metadata.forEach(meta => this.metadata.set(meta.className, meta));
195
+ metadata.forEach(meta => {
196
+ this.metadata.set(meta.className, meta);
197
+ meta.root = this.metadata.get(meta.root.className);
198
+ });
196
199
  this.metadata.decorate(this.em);
197
200
  }
198
201
  /**
@@ -121,7 +121,11 @@ class MetadataDiscovery {
121
121
  if (combinedCachePath) {
122
122
  this.config.get('metadataCache').combined = combinedCachePath;
123
123
  }
124
- return discovered.map(meta => this.metadata.get(meta.className));
124
+ return discovered.map(meta => {
125
+ meta = this.metadata.get(meta.className);
126
+ meta.sync(true);
127
+ return meta;
128
+ });
125
129
  }
126
130
  findEntities(preferTsNode, sync = false) {
127
131
  this.discovered.length = 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mikro-orm/core",
3
- "version": "6.3.10-dev.13",
3
+ "version": "6.3.10-dev.15",
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.2.0",
66
66
  "globby": "11.1.0",
67
- "mikro-orm": "6.3.10-dev.13",
67
+ "mikro-orm": "6.3.10-dev.15",
68
68
  "reflect-metadata": "0.2.2"
69
69
  }
70
70
  }
@@ -185,12 +185,13 @@ class ChangeSetPersister {
185
185
  this.checkConcurrencyKeys(meta, changeSet, cond[idx]);
186
186
  });
187
187
  const res = await this.driver.nativeUpdateMany(meta.className, cond, changeSets.map(cs => cs.payload), options);
188
- changeSets.forEach((changeSet, idx) => {
188
+ for (const changeSet of changeSets) {
189
189
  if (res.rows) {
190
- this.mapReturnedValues(changeSet.entity, changeSet.payload, res.rows[idx], meta);
190
+ const row = res.rows.find(row => utils_1.Utils.equals(utils_1.Utils.extractPK(row, meta), changeSet.getPrimaryKey()));
191
+ this.mapReturnedValues(changeSet.entity, changeSet.payload, row, meta);
191
192
  }
192
193
  changeSet.persisted = true;
193
- });
194
+ }
194
195
  }
195
196
  mapPrimaryKey(meta, value, changeSet) {
196
197
  const prop = meta.properties[meta.primaryKeys[0]];