@punks/backend-entity-manager 0.0.169 → 0.0.171
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/cjs/index.js +55 -7
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/__test__/providers/typeorm/mock/index.d.ts +1 -1
- package/dist/cjs/types/abstractions/commands.d.ts +5 -4
- package/dist/cjs/types/abstractions/manager.d.ts +1 -1
- package/dist/cjs/types/abstractions/searchParameters.d.ts +6 -0
- package/dist/cjs/types/base/serializer.d.ts +2 -1
- package/dist/cjs/types/commands/create.d.ts +3 -2
- package/dist/cjs/types/commands/update.d.ts +3 -1
- package/dist/cjs/types/commands/upsert.d.ts +3 -1
- package/dist/cjs/types/concrete/index.d.ts +1 -1
- package/dist/cjs/types/integrations/repository/typeorm/queryBuilder.d.ts +7 -0
- package/dist/cjs/types/integrations/repository/typeorm/traverse.d.ts +3 -0
- package/dist/cjs/types/models/create.d.ts +3 -0
- package/dist/cjs/types/models/index.d.ts +1 -0
- package/dist/cjs/types/models/search.d.ts +5 -0
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appCompanies/appCompany.serializer.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appDirectories/appDirectory.serializer.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appDivisions/appDivision.serializer.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appEmailLogs/appEmailLog.serializer.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.serializer.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appFileReferences/appFileReference.serializer.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appOrganizations/appOrganization.serializer.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appRoles/appRole.serializer.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appTenants/appTenant.serializer.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserGroupMembers/appUserGroupMember.serializer.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserGroups/appUserGroup.serializer.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserProfiles/appUserProfile.serializer.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserRoles/appUserRole.serializer.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appUsers/appUser.serializer.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.serializer.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/__test__/server/entities/foos/foo.serializer.d.ts +1 -1
- package/dist/cjs/types/providers/services.d.ts +3 -3
- package/dist/esm/index.js +55 -7
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/__test__/providers/typeorm/mock/index.d.ts +1 -1
- package/dist/esm/types/abstractions/commands.d.ts +5 -4
- package/dist/esm/types/abstractions/manager.d.ts +1 -1
- package/dist/esm/types/abstractions/searchParameters.d.ts +6 -0
- package/dist/esm/types/base/serializer.d.ts +2 -1
- package/dist/esm/types/commands/create.d.ts +3 -2
- package/dist/esm/types/commands/update.d.ts +3 -1
- package/dist/esm/types/commands/upsert.d.ts +3 -1
- package/dist/esm/types/concrete/index.d.ts +1 -1
- package/dist/esm/types/integrations/repository/typeorm/queryBuilder.d.ts +7 -0
- package/dist/esm/types/integrations/repository/typeorm/traverse.d.ts +3 -0
- package/dist/esm/types/models/create.d.ts +3 -0
- package/dist/esm/types/models/index.d.ts +1 -0
- package/dist/esm/types/models/search.d.ts +5 -0
- package/dist/esm/types/platforms/nest/__test__/server/entities/appCompanies/appCompany.serializer.d.ts +1 -1
- package/dist/esm/types/platforms/nest/__test__/server/entities/appDirectories/appDirectory.serializer.d.ts +1 -1
- package/dist/esm/types/platforms/nest/__test__/server/entities/appDivisions/appDivision.serializer.d.ts +1 -1
- package/dist/esm/types/platforms/nest/__test__/server/entities/appEmailLogs/appEmailLog.serializer.d.ts +1 -1
- package/dist/esm/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.serializer.d.ts +1 -1
- package/dist/esm/types/platforms/nest/__test__/server/entities/appFileReferences/appFileReference.serializer.d.ts +1 -1
- package/dist/esm/types/platforms/nest/__test__/server/entities/appOrganizations/appOrganization.serializer.d.ts +1 -1
- package/dist/esm/types/platforms/nest/__test__/server/entities/appRoles/appRole.serializer.d.ts +1 -1
- package/dist/esm/types/platforms/nest/__test__/server/entities/appTenants/appTenant.serializer.d.ts +1 -1
- package/dist/esm/types/platforms/nest/__test__/server/entities/appUserGroupMembers/appUserGroupMember.serializer.d.ts +1 -1
- package/dist/esm/types/platforms/nest/__test__/server/entities/appUserGroups/appUserGroup.serializer.d.ts +1 -1
- package/dist/esm/types/platforms/nest/__test__/server/entities/appUserProfiles/appUserProfile.serializer.d.ts +1 -1
- package/dist/esm/types/platforms/nest/__test__/server/entities/appUserRoles/appUserRole.serializer.d.ts +1 -1
- package/dist/esm/types/platforms/nest/__test__/server/entities/appUsers/appUser.serializer.d.ts +1 -1
- package/dist/esm/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.serializer.d.ts +1 -1
- package/dist/esm/types/platforms/nest/__test__/server/entities/foos/foo.serializer.d.ts +1 -1
- package/dist/esm/types/providers/services.d.ts +3 -3
- package/dist/index.d.ts +35 -10
- package/package.json +1 -1
package/dist/cjs/index.js
CHANGED
|
@@ -347,9 +347,15 @@ class EntityCreateAction {
|
|
|
347
347
|
this.logger.debug("Create action started", { input });
|
|
348
348
|
const converter = this.services.resolveConverter();
|
|
349
349
|
const createInput = converter?.createDtoToEntity(input) ?? input;
|
|
350
|
-
const
|
|
350
|
+
const ref = await this.services
|
|
351
351
|
.resolveCreateCommand()
|
|
352
352
|
.execute(createInput);
|
|
353
|
+
const entity = await this.services
|
|
354
|
+
.resolveGetQuery()
|
|
355
|
+
.execute(ref.id);
|
|
356
|
+
if (!entity) {
|
|
357
|
+
throw new Error(`Newly created entity not found with id ${ref.id}`);
|
|
358
|
+
}
|
|
353
359
|
const result = converter?.toEntityDto(entity) ?? entity;
|
|
354
360
|
this.logger.debug("Create action completed", { input, result });
|
|
355
361
|
return result;
|
|
@@ -469,9 +475,13 @@ class EntityUpdateAction {
|
|
|
469
475
|
this.logger.debug("Update action started", { id, input });
|
|
470
476
|
const converter = this.services.resolveConverter();
|
|
471
477
|
const updateInput = converter?.updateDtoToEntity(input) ?? input;
|
|
472
|
-
|
|
478
|
+
await this.services
|
|
473
479
|
.resolveUpdateCommand()
|
|
474
480
|
.execute(id, updateInput);
|
|
481
|
+
const entity = await this.services.resolveGetQuery().execute(id);
|
|
482
|
+
if (!entity) {
|
|
483
|
+
throw new Error(`Newly created entity not found with id ${id}`);
|
|
484
|
+
}
|
|
475
485
|
const result = converter?.toEntityDto(entity) ?? entity;
|
|
476
486
|
this.logger.debug("Update action started", { id, input, result });
|
|
477
487
|
return result;
|
|
@@ -487,9 +497,13 @@ class EntityUpsertAction {
|
|
|
487
497
|
this.logger.debug("Upsert action started", { id, input });
|
|
488
498
|
const converter = this.services.resolveConverter();
|
|
489
499
|
const updateInput = converter?.updateDtoToEntity(input) ?? input;
|
|
490
|
-
|
|
500
|
+
await this.services
|
|
491
501
|
.resolveUpsertCommand()
|
|
492
502
|
.execute(id, updateInput);
|
|
503
|
+
const entity = await this.services.resolveGetQuery().execute(id);
|
|
504
|
+
if (!entity) {
|
|
505
|
+
throw new Error(`Newly created entity not found with id ${id}`);
|
|
506
|
+
}
|
|
493
507
|
const result = converter?.toEntityDto(entity) ?? entity;
|
|
494
508
|
this.logger.debug("Upsert action started", { id, input, result });
|
|
495
509
|
return result;
|
|
@@ -522,11 +536,14 @@ class EntityCreateCommand {
|
|
|
522
536
|
await this.authorize(entity);
|
|
523
537
|
const createdItem = await this.services.resolveRepository().create(entity);
|
|
524
538
|
// todo: parametrize id field
|
|
525
|
-
|
|
539
|
+
const id = createdItem.id;
|
|
540
|
+
await this.versionEntity(id, createdItem);
|
|
526
541
|
await this.services
|
|
527
542
|
.resolveEventsManager()
|
|
528
543
|
.processEntityCreatedEvent(createdItem);
|
|
529
|
-
return
|
|
544
|
+
return {
|
|
545
|
+
id,
|
|
546
|
+
};
|
|
530
547
|
}
|
|
531
548
|
adaptEntity(input) {
|
|
532
549
|
const adapter = this.services.resolveAdapter();
|
|
@@ -794,7 +811,9 @@ class EntityUpdateCommand {
|
|
|
794
811
|
await this.services
|
|
795
812
|
.resolveEventsManager()
|
|
796
813
|
.processEntityUpdatedEvent(updatedEntity);
|
|
797
|
-
return
|
|
814
|
+
return {
|
|
815
|
+
id,
|
|
816
|
+
};
|
|
798
817
|
}
|
|
799
818
|
adaptEntity(input) {
|
|
800
819
|
const adapter = this.services.resolveAdapter();
|
|
@@ -847,7 +866,9 @@ class EntityUpsertCommand {
|
|
|
847
866
|
await this.services
|
|
848
867
|
.resolveEventsManager()
|
|
849
868
|
.processEntityUpdatedEvent(updatedEntity);
|
|
850
|
-
return
|
|
869
|
+
return {
|
|
870
|
+
id,
|
|
871
|
+
};
|
|
851
872
|
}
|
|
852
873
|
async upsertEntity(id, entity) {
|
|
853
874
|
return await this.services.resolveRepository().upsert(id, entity);
|
|
@@ -22239,6 +22260,9 @@ class TypeOrmQueryBuilder extends QueryBuilderBase {
|
|
|
22239
22260
|
const facets = request.options?.includeFacets
|
|
22240
22261
|
? await this.calculateFacets(request, context)
|
|
22241
22262
|
: undefined;
|
|
22263
|
+
const childrenMap = request.options?.includeChildrenMap
|
|
22264
|
+
? await this.calculateChildrenMap(results)
|
|
22265
|
+
: undefined;
|
|
22242
22266
|
return {
|
|
22243
22267
|
items: results,
|
|
22244
22268
|
request,
|
|
@@ -22248,6 +22272,7 @@ class TypeOrmQueryBuilder extends QueryBuilderBase {
|
|
|
22248
22272
|
totResults: queryResults,
|
|
22249
22273
|
}),
|
|
22250
22274
|
facets,
|
|
22275
|
+
childrenMap,
|
|
22251
22276
|
};
|
|
22252
22277
|
}
|
|
22253
22278
|
async getFieldDistinctValues(field, request, context) {
|
|
@@ -22290,6 +22315,29 @@ class TypeOrmQueryBuilder extends QueryBuilderBase {
|
|
|
22290
22315
|
value: typeorm.ILike(`%${request.query?.term}%`),
|
|
22291
22316
|
}));
|
|
22292
22317
|
}
|
|
22318
|
+
calculateChildrenMap(items) {
|
|
22319
|
+
return Promise.resolve({});
|
|
22320
|
+
}
|
|
22321
|
+
async queryChildrenMap({ nodeIds, idField, parentField, }) {
|
|
22322
|
+
const result = await this.getRepository()
|
|
22323
|
+
.getInnerRepository()
|
|
22324
|
+
.createQueryBuilder("entity")
|
|
22325
|
+
.where({
|
|
22326
|
+
[parentField.toString()]: {
|
|
22327
|
+
[idField.toString()]: typeorm.In(nodeIds),
|
|
22328
|
+
},
|
|
22329
|
+
})
|
|
22330
|
+
.select(`entity.${parentField.toString()}.${idField.toString()}`, "parentId")
|
|
22331
|
+
.addSelect(`COUNT(entity.${idField.toString()})`, "count")
|
|
22332
|
+
.groupBy(`entity.${parentField.toString()}.${idField.toString()}`)
|
|
22333
|
+
.getRawMany();
|
|
22334
|
+
return result.reduce((acc, x) => {
|
|
22335
|
+
acc[x.parentId] = {
|
|
22336
|
+
count: parseInt(x.count),
|
|
22337
|
+
};
|
|
22338
|
+
return acc;
|
|
22339
|
+
}, {});
|
|
22340
|
+
}
|
|
22293
22341
|
async calculateFacet(field, request, context, relations) {
|
|
22294
22342
|
let query = this.getRepository()
|
|
22295
22343
|
.getInnerRepository()
|