@punks/backend-entity-manager 0.0.97 → 0.0.99

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.
Files changed (40) hide show
  1. package/dist/cjs/index.js +29 -10
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/__test__/providers/typeorm/queries/foo.d.ts +1 -1
  4. package/dist/cjs/types/abstractions/searchParameters.d.ts +5 -0
  5. package/dist/cjs/types/integrations/repository/typeorm/facets.d.ts +7 -0
  6. package/dist/cjs/types/integrations/repository/typeorm/queryBuilder.d.ts +4 -1
  7. package/dist/cjs/types/integrations/repository/typeorm/repository.d.ts +1 -0
  8. package/dist/cjs/types/platforms/nest/__test__/server/entities/appCompanies/appCompany.query.d.ts +1 -1
  9. package/dist/cjs/types/platforms/nest/__test__/server/entities/appDivisions/appDivision.query.d.ts +1 -1
  10. package/dist/cjs/types/platforms/nest/__test__/server/entities/appOrganizations/appOrganization.query.d.ts +1 -1
  11. package/dist/cjs/types/platforms/nest/__test__/server/entities/appRoles/appRole.query.d.ts +1 -1
  12. package/dist/cjs/types/platforms/nest/__test__/server/entities/appTenants/appTenant.query.d.ts +1 -1
  13. package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserGroupMembers/appUserGroupMember.query.d.ts +1 -1
  14. package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserGroups/appUserGroup.query.d.ts +1 -1
  15. package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserProfiles/appUserProfile.query.d.ts +1 -1
  16. package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserRoles/appUserRole.query.d.ts +1 -1
  17. package/dist/cjs/types/platforms/nest/__test__/server/entities/appUsers/appUser.query.d.ts +1 -1
  18. package/dist/cjs/types/platforms/nest/__test__/server/entities/foos/foo.models.d.ts +2 -0
  19. package/dist/cjs/types/platforms/nest/__test__/server/entities/foos/foo.query.d.ts +1 -1
  20. package/dist/esm/index.js +29 -10
  21. package/dist/esm/index.js.map +1 -1
  22. package/dist/esm/types/__test__/providers/typeorm/queries/foo.d.ts +1 -1
  23. package/dist/esm/types/abstractions/searchParameters.d.ts +5 -0
  24. package/dist/esm/types/integrations/repository/typeorm/facets.d.ts +7 -0
  25. package/dist/esm/types/integrations/repository/typeorm/queryBuilder.d.ts +4 -1
  26. package/dist/esm/types/integrations/repository/typeorm/repository.d.ts +1 -0
  27. package/dist/esm/types/platforms/nest/__test__/server/entities/appCompanies/appCompany.query.d.ts +1 -1
  28. package/dist/esm/types/platforms/nest/__test__/server/entities/appDivisions/appDivision.query.d.ts +1 -1
  29. package/dist/esm/types/platforms/nest/__test__/server/entities/appOrganizations/appOrganization.query.d.ts +1 -1
  30. package/dist/esm/types/platforms/nest/__test__/server/entities/appRoles/appRole.query.d.ts +1 -1
  31. package/dist/esm/types/platforms/nest/__test__/server/entities/appTenants/appTenant.query.d.ts +1 -1
  32. package/dist/esm/types/platforms/nest/__test__/server/entities/appUserGroupMembers/appUserGroupMember.query.d.ts +1 -1
  33. package/dist/esm/types/platforms/nest/__test__/server/entities/appUserGroups/appUserGroup.query.d.ts +1 -1
  34. package/dist/esm/types/platforms/nest/__test__/server/entities/appUserProfiles/appUserProfile.query.d.ts +1 -1
  35. package/dist/esm/types/platforms/nest/__test__/server/entities/appUserRoles/appUserRole.query.d.ts +1 -1
  36. package/dist/esm/types/platforms/nest/__test__/server/entities/appUsers/appUser.query.d.ts +1 -1
  37. package/dist/esm/types/platforms/nest/__test__/server/entities/foos/foo.models.d.ts +2 -0
  38. package/dist/esm/types/platforms/nest/__test__/server/entities/foos/foo.query.d.ts +1 -1
  39. package/dist/index.d.ts +14 -2
  40. package/package.json +1 -1
package/dist/cjs/index.js CHANGED
@@ -21549,7 +21549,9 @@ class TypeOrmQueryBuilder extends QueryBuilderBase {
21549
21549
  // todo: execute inside read transaction in order to perform the three queries on the same dataset
21550
21550
  const queryResults = await this.countQueryResults(request, context);
21551
21551
  const results = await this.findPagedQueryResults(request, context);
21552
- const facets = await this.calculateFacets(request, context);
21552
+ const facets = request.options?.includeFacets
21553
+ ? await this.calculateFacets(request, context)
21554
+ : undefined;
21553
21555
  return {
21554
21556
  items: results,
21555
21557
  request,
@@ -21561,6 +21563,9 @@ class TypeOrmQueryBuilder extends QueryBuilderBase {
21561
21563
  facets,
21562
21564
  };
21563
21565
  }
21566
+ async getFieldFacet() {
21567
+ this.getRepository().find({});
21568
+ }
21564
21569
  async findPagedQueryResults(request, context) {
21565
21570
  return await this.getRepository().find({
21566
21571
  where: {
@@ -21590,15 +21595,15 @@ class TypeOrmQueryBuilder extends QueryBuilderBase {
21590
21595
  },
21591
21596
  });
21592
21597
  }
21593
- // protected calculateFacet(
21594
- // request: TEntitySearchParameters,
21595
- // context: IAuthenticationContext<TUserContext> | undefined
21596
- // ) {
21597
- // const repo = this.getRepository().getInnerRepository()
21598
- // repo.createQueryBuilder().relation("xx").select([]).where({
21599
- // whereFactory:
21600
- // }).groupBy().getRawMany()
21601
- // }
21598
+ async calculateFacet(field, request, context) {
21599
+ const values = await this.getRepository().distinct(field, {
21600
+ ...(context ? this.buildContextFilter(context) : {}),
21601
+ ...this.buildWhereClause(request),
21602
+ });
21603
+ return {
21604
+ values,
21605
+ };
21606
+ }
21602
21607
  getRepository() {
21603
21608
  if (!this.repository) {
21604
21609
  this.repository = this.services.resolveRepository();
@@ -21615,6 +21620,20 @@ class TypeOrmRepository {
21615
21620
  getInnerRepository() {
21616
21621
  return this.innerRepository;
21617
21622
  }
21623
+ async distinct(field, condition) {
21624
+ this.logger.debug("Getting distinct values", { field });
21625
+ const columnName = this.innerRepository.metadata.findColumnWithPropertyName(field)?.databaseName;
21626
+ if (!columnName) {
21627
+ throw new Error(`Column '${field}' not found`);
21628
+ }
21629
+ const results = await this.innerRepository
21630
+ .createQueryBuilder()
21631
+ .select(`DISTINCT ${columnName}`)
21632
+ .where(condition)
21633
+ .orderBy(columnName)
21634
+ .getRawMany();
21635
+ return results.map((x) => x[columnName]);
21636
+ }
21618
21637
  async exists(id) {
21619
21638
  if (backendCore.isNullOrUndefined(id)) {
21620
21639
  throw new Error("Invalid 'id' parameter.");