nestjs-query-mikro-orm 0.1.2 → 0.1.4

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/dist/index.cjs CHANGED
@@ -3,7 +3,9 @@
3
3
  var nestjs = require('@mikro-orm/nestjs');
4
4
  var nestjsQueryCore = require('@ptc-org/nestjs-query-core');
5
5
  var core = require('@mikro-orm/core');
6
+ var assembler_serializer = require('@ptc-org/nestjs-query-core/src/assemblers/assembler.serializer');
6
7
  var common = require('@nestjs/common');
8
+ var classTransformer = require('class-transformer');
7
9
  var merge = require('lodash.merge');
8
10
 
9
11
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
@@ -1569,6 +1571,28 @@ var MikroOrmQueryService = class extends RelationQueryService {
1569
1571
  super(), this.repo = repo;
1570
1572
  this.filterQueryBuilder = opts?.filterQueryBuilder ?? new FilterQueryBuilder(this.repo);
1571
1573
  this.useSoftDelete = opts?.useSoftDelete ?? false;
1574
+ const serializer = assembler_serializer.getAssemblerSerializer(this.EntityClass);
1575
+ if (!serializer) {
1576
+ nestjsQueryCore.AssemblerSerializer((e) => {
1577
+ const json = classTransformer.instanceToPlain(e, {
1578
+ enableImplicitConversion: true,
1579
+ excludeExtraneousValues: true,
1580
+ exposeDefaultValues: true
1581
+ });
1582
+ const jsonWithRemovedEmptyObjects = Object.fromEntries(Object.entries(json).filter(([, value]) => !(value && typeof value === "object" && !Array.isArray(value) && Object.keys(value).length === 0)));
1583
+ const wrapped = core.wrap(e, true);
1584
+ const ormJson = "toObject" in wrapped ? wrapped.toObject() : {};
1585
+ const data = {
1586
+ ...ormJson,
1587
+ ...jsonWithRemovedEmptyObjects
1588
+ };
1589
+ return data;
1590
+ })(this.EntityClass);
1591
+ nestjsQueryCore.AssemblerDeserializer((d) => {
1592
+ const entity = this.repo.getEntityManager().merge(this.EntityClass, d);
1593
+ return entity;
1594
+ })(this.EntityClass);
1595
+ }
1572
1596
  }
1573
1597
  get EntityClass() {
1574
1598
  const em = this.repo.getEntityManager();
@@ -1854,7 +1878,8 @@ var MikroOrmQueryService = class extends RelationQueryService {
1854
1878
  * @param opts - Additional options.
1855
1879
  */
1856
1880
  async updateOne(id, update, opts) {
1857
- const dateWithClearUndefined = Object.fromEntries(Object.entries(update).filter(([, value]) => value !== void 0));
1881
+ const data = "toPOJO" in core.wrap(update) ? core.wrap(update).toPOJO() : update;
1882
+ const dateWithClearUndefined = Object.fromEntries(Object.entries(data).filter(([, value]) => value !== void 0));
1858
1883
  this.ensureIdIsNotPresent(dateWithClearUndefined);
1859
1884
  const entity = await this.getById(id, opts);
1860
1885
  core.wrap(entity).assign(dateWithClearUndefined);
@@ -1875,12 +1900,14 @@ var MikroOrmQueryService = class extends RelationQueryService {
1875
1900
  * @param filter - A Filter used to find the records to update
1876
1901
  */
1877
1902
  async updateMany(update, filter) {
1903
+ const data = "toPOJO" in core.wrap(update) ? core.wrap(update).toPOJO() : update;
1904
+ const dateWithClearUndefined = Object.fromEntries(Object.entries(data).filter(([, value]) => value !== void 0));
1878
1905
  this.ensureIdIsNotPresent(update);
1879
1906
  const entities = await this.query({
1880
1907
  filter
1881
1908
  });
1882
1909
  for (const entity of entities) {
1883
- core.wrap(entity).assign(update);
1910
+ core.wrap(entity).assign(dateWithClearUndefined);
1884
1911
  }
1885
1912
  await this.repo.getEntityManager().flush();
1886
1913
  return {