@punks/backend-entity-manager 0.0.170 → 0.0.172

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 CHANGED
@@ -458,10 +458,11 @@ class EntitiesSearchAction {
458
458
  const results = await searchQuery.execute(request);
459
459
  const converter = this.services.resolveConverter();
460
460
  return {
461
- facets: results.facets,
461
+ items: results.items.map((x) => (converter?.toListItemDto(x) ?? x)),
462
462
  paging: results.paging,
463
+ childrenMap: results.childrenMap,
464
+ facets: results.facets,
463
465
  request: results.request,
464
- items: results.items.map((x) => (converter?.toListItemDto(x) ?? x)),
465
466
  };
466
467
  }
467
468
  }
@@ -22260,6 +22261,9 @@ class TypeOrmQueryBuilder extends QueryBuilderBase {
22260
22261
  const facets = request.options?.includeFacets
22261
22262
  ? await this.calculateFacets(request, context)
22262
22263
  : undefined;
22264
+ const childrenMap = request.options?.includeChildrenMap
22265
+ ? await this.calculateChildrenMap(results)
22266
+ : undefined;
22263
22267
  return {
22264
22268
  items: results,
22265
22269
  request,
@@ -22269,6 +22273,7 @@ class TypeOrmQueryBuilder extends QueryBuilderBase {
22269
22273
  totResults: queryResults,
22270
22274
  }),
22271
22275
  facets,
22276
+ childrenMap,
22272
22277
  };
22273
22278
  }
22274
22279
  async getFieldDistinctValues(field, request, context) {
@@ -22311,6 +22316,29 @@ class TypeOrmQueryBuilder extends QueryBuilderBase {
22311
22316
  value: typeorm.ILike(`%${request.query?.term}%`),
22312
22317
  }));
22313
22318
  }
22319
+ calculateChildrenMap(items) {
22320
+ return Promise.resolve({});
22321
+ }
22322
+ async queryChildrenMap({ nodeIds, idField, parentField, }) {
22323
+ const result = await this.getRepository()
22324
+ .getInnerRepository()
22325
+ .createQueryBuilder("entity")
22326
+ .where({
22327
+ [parentField.toString()]: {
22328
+ [idField.toString()]: typeorm.In(nodeIds),
22329
+ },
22330
+ })
22331
+ .select(`entity.${parentField.toString()}.${idField.toString()}`, "parentId")
22332
+ .addSelect(`COUNT(entity.${idField.toString()})`, "count")
22333
+ .groupBy(`entity.${parentField.toString()}.${idField.toString()}`)
22334
+ .getRawMany();
22335
+ return result.reduce((acc, x) => {
22336
+ acc[x.parentId] = {
22337
+ count: parseInt(x.count),
22338
+ };
22339
+ return acc;
22340
+ }, {});
22341
+ }
22314
22342
  async calculateFacet(field, request, context, relations) {
22315
22343
  let query = this.getRepository()
22316
22344
  .getInnerRepository()