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 +29 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +30 -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,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
|
|
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(
|
|
1910
|
+
core.wrap(entity).assign(dateWithClearUndefined);
|
|
1884
1911
|
}
|
|
1885
1912
|
await this.repo.getEntityManager().flush();
|
|
1886
1913
|
return {
|