@punks/backend-entity-manager 0.0.235 → 0.0.237
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 +27 -16
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/abstractions/searchParameters.d.ts +1 -0
- package/dist/cjs/types/integrations/repository/typeorm/queryBuilder.d.ts +1 -1
- package/dist/esm/index.js +28 -17
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/abstractions/searchParameters.d.ts +1 -0
- package/dist/esm/types/integrations/repository/typeorm/queryBuilder.d.ts +1 -1
- package/dist/index.d.ts +2 -1
- package/package.json +1 -1
package/dist/cjs/index.js
CHANGED
|
@@ -2932,7 +2932,7 @@ class QueryClauseBuilder {
|
|
|
2932
2932
|
clauses.push(typeorm.ILike(filter.eq));
|
|
2933
2933
|
}
|
|
2934
2934
|
if (!backendCore.isNullOrUndefined(filter?.like)) {
|
|
2935
|
-
clauses.push(typeorm.
|
|
2935
|
+
clauses.push(typeorm.ILike(filter.like.replaceAll("*", "%")));
|
|
2936
2936
|
}
|
|
2937
2937
|
if (!backendCore.isNullOrUndefined(filter?.ne)) {
|
|
2938
2938
|
clauses.push(typeorm.Not(typeorm.Equal(filter.ne)));
|
|
@@ -2944,7 +2944,7 @@ class QueryClauseBuilder {
|
|
|
2944
2944
|
clauses.push(typeorm.Not(typeorm.In(filter.notIn)));
|
|
2945
2945
|
}
|
|
2946
2946
|
if (!backendCore.isNullOrUndefined(filter?.notLike)) {
|
|
2947
|
-
clauses.push(typeorm.Not(typeorm.
|
|
2947
|
+
clauses.push(typeorm.Not(typeorm.ILike(filter.notLike.replaceAll("*", "%"))));
|
|
2948
2948
|
}
|
|
2949
2949
|
if (filter?.isNull === true) {
|
|
2950
2950
|
clauses.push(typeorm.IsNull());
|
|
@@ -2968,6 +2968,12 @@ class QueryClauseBuilder {
|
|
|
2968
2968
|
if (!backendCore.isNullOrUndefined(filter?.lt)) {
|
|
2969
2969
|
clauses.push(typeorm.LessThan(filter.lt));
|
|
2970
2970
|
}
|
|
2971
|
+
if (!backendCore.isNullOrUndefined(filter?.in)) {
|
|
2972
|
+
clauses.push(typeorm.In(filter.in ?? []));
|
|
2973
|
+
}
|
|
2974
|
+
if (!backendCore.isNullOrUndefined(filter?.eq)) {
|
|
2975
|
+
clauses.push(typeorm.Equal(filter.eq));
|
|
2976
|
+
}
|
|
2971
2977
|
if (filter?.isNull === true) {
|
|
2972
2978
|
clauses.push(typeorm.IsNull());
|
|
2973
2979
|
}
|
|
@@ -3097,7 +3103,11 @@ class TypeOrmQueryBuilder extends QueryBuilderBase {
|
|
|
3097
3103
|
const queryResults = await this.countQueryResults(request, context);
|
|
3098
3104
|
const results = await this.findPagedQueryResults(request, context);
|
|
3099
3105
|
const facets = request.options?.includeFacets
|
|
3100
|
-
?
|
|
3106
|
+
? // todo: refactor avoiding to manipulate the request object
|
|
3107
|
+
await this.calculateFacets({
|
|
3108
|
+
...request,
|
|
3109
|
+
filters: request.options.facetsFilters,
|
|
3110
|
+
}, context)
|
|
3101
3111
|
: undefined;
|
|
3102
3112
|
const childrenMap = request.options?.includeChildrenMap
|
|
3103
3113
|
? await this.calculateChildrenMap(results)
|
|
@@ -3177,6 +3187,15 @@ class TypeOrmQueryBuilder extends QueryBuilderBase {
|
|
|
3177
3187
|
return acc;
|
|
3178
3188
|
}, {});
|
|
3179
3189
|
}
|
|
3190
|
+
async calculateStringFieldFacets(field, request, context, relations) {
|
|
3191
|
+
return await this.calculateFacet(field, request, context, relations);
|
|
3192
|
+
}
|
|
3193
|
+
async calculateNumericFieldFacets(field, request, context, relations) {
|
|
3194
|
+
return await this.calculateFacet(field, request, context, relations);
|
|
3195
|
+
}
|
|
3196
|
+
async calculateBooleanFieldFacets(field, request, context, relations) {
|
|
3197
|
+
return await this.calculateFacet(field, request, context, relations);
|
|
3198
|
+
}
|
|
3180
3199
|
async calculateFacet(field, request, context, relations) {
|
|
3181
3200
|
let query = this.getRepository()
|
|
3182
3201
|
.getInnerRepository()
|
|
@@ -3184,12 +3203,13 @@ class TypeOrmQueryBuilder extends QueryBuilderBase {
|
|
|
3184
3203
|
for (const relation of relations?.columns ?? []) {
|
|
3185
3204
|
query = query.leftJoin(`entity.${relation}`, relation);
|
|
3186
3205
|
}
|
|
3206
|
+
const fieldName = `"${field}"`;
|
|
3187
3207
|
const results = await query
|
|
3188
|
-
.select(
|
|
3189
|
-
.addSelect(`COUNT(${
|
|
3208
|
+
.select(fieldName, "value")
|
|
3209
|
+
.addSelect(`COUNT(${fieldName})`, "count")
|
|
3190
3210
|
.where(this.buildWhere(request, context))
|
|
3191
|
-
.addGroupBy(
|
|
3192
|
-
.orderBy(
|
|
3211
|
+
.addGroupBy(fieldName)
|
|
3212
|
+
.orderBy(fieldName)
|
|
3193
3213
|
.getRawMany();
|
|
3194
3214
|
return {
|
|
3195
3215
|
values: results.map((x) => ({
|
|
@@ -3198,15 +3218,6 @@ class TypeOrmQueryBuilder extends QueryBuilderBase {
|
|
|
3198
3218
|
})),
|
|
3199
3219
|
};
|
|
3200
3220
|
}
|
|
3201
|
-
async calculateStringFieldFacets(field, request, context, relations) {
|
|
3202
|
-
return await this.calculateFacet(field, request, context, relations);
|
|
3203
|
-
}
|
|
3204
|
-
async calculateNumericFieldFacets(field, request, context, relations) {
|
|
3205
|
-
return await this.calculateFacet(field, request, context, relations);
|
|
3206
|
-
}
|
|
3207
|
-
async calculateBooleanFieldFacets(field, request, context, relations) {
|
|
3208
|
-
return await this.calculateFacet(field, request, context, relations);
|
|
3209
|
-
}
|
|
3210
3221
|
getRepository() {
|
|
3211
3222
|
if (!this.repository) {
|
|
3212
3223
|
this.repository = this.services.resolveRepository();
|