nestjs-query-mikro-orm 0.1.2 → 0.1.3
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 +35 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +36 -3
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
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,34 @@ 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 wrapped = core.wrap(d, true);
|
|
1593
|
+
if (wrapped.getPrimaryKey()) {
|
|
1594
|
+
const entity = this.repo.getEntityManager().merge(this.EntityClass, d);
|
|
1595
|
+
return entity;
|
|
1596
|
+
} else {
|
|
1597
|
+
const entity = this.repo.getEntityManager().create(this.EntityClass, d);
|
|
1598
|
+
return entity;
|
|
1599
|
+
}
|
|
1600
|
+
})(this.EntityClass);
|
|
1601
|
+
}
|
|
1572
1602
|
}
|
|
1573
1603
|
get EntityClass() {
|
|
1574
1604
|
const em = this.repo.getEntityManager();
|
|
@@ -1854,7 +1884,8 @@ var MikroOrmQueryService = class extends RelationQueryService {
|
|
|
1854
1884
|
* @param opts - Additional options.
|
|
1855
1885
|
*/
|
|
1856
1886
|
async updateOne(id, update, opts) {
|
|
1857
|
-
const
|
|
1887
|
+
const data = "toPOJO" in core.wrap(update) ? core.wrap(update).toPOJO() : update;
|
|
1888
|
+
const dateWithClearUndefined = Object.fromEntries(Object.entries(data).filter(([, value]) => value !== void 0));
|
|
1858
1889
|
this.ensureIdIsNotPresent(dateWithClearUndefined);
|
|
1859
1890
|
const entity = await this.getById(id, opts);
|
|
1860
1891
|
core.wrap(entity).assign(dateWithClearUndefined);
|
|
@@ -1875,12 +1906,14 @@ var MikroOrmQueryService = class extends RelationQueryService {
|
|
|
1875
1906
|
* @param filter - A Filter used to find the records to update
|
|
1876
1907
|
*/
|
|
1877
1908
|
async updateMany(update, filter) {
|
|
1909
|
+
const data = "toPOJO" in core.wrap(update) ? core.wrap(update).toPOJO() : update;
|
|
1910
|
+
const dateWithClearUndefined = Object.fromEntries(Object.entries(data).filter(([, value]) => value !== void 0));
|
|
1878
1911
|
this.ensureIdIsNotPresent(update);
|
|
1879
1912
|
const entities = await this.query({
|
|
1880
1913
|
filter
|
|
1881
1914
|
});
|
|
1882
1915
|
for (const entity of entities) {
|
|
1883
|
-
core.wrap(entity).assign(
|
|
1916
|
+
core.wrap(entity).assign(dateWithClearUndefined);
|
|
1884
1917
|
}
|
|
1885
1918
|
await this.repo.getEntityManager().flush();
|
|
1886
1919
|
return {
|