@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.
- package/dist/cjs/index.js +29 -10
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/__test__/providers/typeorm/queries/foo.d.ts +1 -1
- package/dist/cjs/types/abstractions/searchParameters.d.ts +5 -0
- package/dist/cjs/types/integrations/repository/typeorm/facets.d.ts +7 -0
- package/dist/cjs/types/integrations/repository/typeorm/queryBuilder.d.ts +4 -1
- package/dist/cjs/types/integrations/repository/typeorm/repository.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appCompanies/appCompany.query.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appDivisions/appDivision.query.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appOrganizations/appOrganization.query.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appRoles/appRole.query.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appTenants/appTenant.query.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserGroupMembers/appUserGroupMember.query.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserGroups/appUserGroup.query.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserProfiles/appUserProfile.query.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserRoles/appUserRole.query.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appUsers/appUser.query.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/__test__/server/entities/foos/foo.models.d.ts +2 -0
- package/dist/cjs/types/platforms/nest/__test__/server/entities/foos/foo.query.d.ts +1 -1
- package/dist/esm/index.js +29 -10
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/__test__/providers/typeorm/queries/foo.d.ts +1 -1
- package/dist/esm/types/abstractions/searchParameters.d.ts +5 -0
- package/dist/esm/types/integrations/repository/typeorm/facets.d.ts +7 -0
- package/dist/esm/types/integrations/repository/typeorm/queryBuilder.d.ts +4 -1
- package/dist/esm/types/integrations/repository/typeorm/repository.d.ts +1 -0
- package/dist/esm/types/platforms/nest/__test__/server/entities/appCompanies/appCompany.query.d.ts +1 -1
- package/dist/esm/types/platforms/nest/__test__/server/entities/appDivisions/appDivision.query.d.ts +1 -1
- package/dist/esm/types/platforms/nest/__test__/server/entities/appOrganizations/appOrganization.query.d.ts +1 -1
- package/dist/esm/types/platforms/nest/__test__/server/entities/appRoles/appRole.query.d.ts +1 -1
- package/dist/esm/types/platforms/nest/__test__/server/entities/appTenants/appTenant.query.d.ts +1 -1
- package/dist/esm/types/platforms/nest/__test__/server/entities/appUserGroupMembers/appUserGroupMember.query.d.ts +1 -1
- package/dist/esm/types/platforms/nest/__test__/server/entities/appUserGroups/appUserGroup.query.d.ts +1 -1
- package/dist/esm/types/platforms/nest/__test__/server/entities/appUserProfiles/appUserProfile.query.d.ts +1 -1
- package/dist/esm/types/platforms/nest/__test__/server/entities/appUserRoles/appUserRole.query.d.ts +1 -1
- package/dist/esm/types/platforms/nest/__test__/server/entities/appUsers/appUser.query.d.ts +1 -1
- package/dist/esm/types/platforms/nest/__test__/server/entities/foos/foo.models.d.ts +2 -0
- package/dist/esm/types/platforms/nest/__test__/server/entities/foos/foo.query.d.ts +1 -1
- package/dist/index.d.ts +14 -2
- 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 =
|
|
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
|
-
|
|
21594
|
-
|
|
21595
|
-
|
|
21596
|
-
|
|
21597
|
-
|
|
21598
|
-
|
|
21599
|
-
|
|
21600
|
-
|
|
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.");
|