@ptc-org/nestjs-query-typeorm 1.0.0-alpha.3 → 1.0.1
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/package.json +7 -7
- package/src/common/index.js.map +1 -1
- package/src/common/randomString.js.map +1 -1
- package/src/index.d.ts +1 -1
- package/src/index.js +3 -3
- package/src/index.js.map +1 -1
- package/src/lib/query-typeorm.js.map +1 -1
- package/src/module.d.ts +3 -3
- package/src/module.js +1 -1
- package/src/module.js.map +1 -1
- package/src/providers.d.ts +3 -3
- package/src/providers.js +2 -2
- package/src/providers.js.map +1 -1
- package/src/query/aggregate.builder.d.ts +7 -1
- package/src/query/aggregate.builder.js +23 -4
- package/src/query/aggregate.builder.js.map +1 -1
- package/src/query/filter-query.builder.d.ts +4 -4
- package/src/query/filter-query.builder.js +12 -10
- package/src/query/filter-query.builder.js.map +1 -1
- package/src/query/index.d.ts +3 -3
- package/src/query/index.js +3 -3
- package/src/query/index.js.map +1 -1
- package/src/query/relation-query.builder.d.ts +2 -2
- package/src/query/relation-query.builder.js +54 -35
- package/src/query/relation-query.builder.js.map +1 -1
- package/src/query/sql-comparison.builder.js.map +1 -1
- package/src/query/where.builder.d.ts +4 -4
- package/src/query/where.builder.js +1 -1
- package/src/query/where.builder.js.map +1 -1
- package/src/services/index.js.map +1 -1
- package/src/services/relation-query.service.d.ts +3 -2
- package/src/services/relation-query.service.js +17 -13
- package/src/services/relation-query.service.js.map +1 -1
- package/src/services/typeorm-query.service.d.ts +3 -1
- package/src/services/typeorm-query.service.js +10 -12
- package/src/services/typeorm-query.service.js.map +1 -1
- package/CHANGELOG.md +0 -527
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ptc-org/nestjs-query-typeorm",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Typeorm adapter for @ptc-org/nestjs-query-core",
|
|
5
5
|
"author": "doug-martin <doug@dougamartin.com>",
|
|
6
6
|
"homepage": "https://github.com/tripss/nestjs-query#readme",
|
|
@@ -22,15 +22,15 @@
|
|
|
22
22
|
"lodash.filter": "^4.6.0",
|
|
23
23
|
"lodash.merge": "^4.6.2",
|
|
24
24
|
"lodash.omit": "^4.5.0",
|
|
25
|
-
"tslib": "^2.
|
|
25
|
+
"tslib": "^2.4.0",
|
|
26
26
|
"uuid": "^8.3.2"
|
|
27
27
|
},
|
|
28
28
|
"peerDependencies": {
|
|
29
|
-
"@nestjs/common": "^8.0.
|
|
30
|
-
"@nestjs/typeorm": "^8.0.0",
|
|
31
|
-
"class-transformer": "^0.2.3 || 0.3.1 || 0.
|
|
32
|
-
"typeorm": "^0.
|
|
33
|
-
"@ptc-org/nestjs-query-core": "1.0.
|
|
29
|
+
"@nestjs/common": "^8.0.0 || ^9.0.0",
|
|
30
|
+
"@nestjs/typeorm": "^8.1.0 || ^9.0.0",
|
|
31
|
+
"class-transformer": "^0.2.3 || 0.3.1 || ^0.5",
|
|
32
|
+
"typeorm": "^0.3.8",
|
|
33
|
+
"@ptc-org/nestjs-query-core": "1.0.1",
|
|
34
34
|
"reflect-metadata": "^0.1.13"
|
|
35
35
|
},
|
|
36
36
|
"repository": {
|
package/src/common/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/query-typeorm/src/common/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/query-typeorm/src/common/index.ts"],"names":[],"mappings":";;;AAAA,8DAA8B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"randomString.js","sourceRoot":"","sources":["../../../../../packages/query-typeorm/src/common/randomString.ts"],"names":[],"mappings":";;;AAAA,+
|
|
1
|
+
{"version":3,"file":"randomString.js","sourceRoot":"","sources":["../../../../../packages/query-typeorm/src/common/randomString.ts"],"names":[],"mappings":";;;AAAA,+BAAyB;AAEzB,MAAM,QAAQ,GAAG,IAAI,CAAA;AAErB,SAAgB,YAAY;IAC1B,OAAO,IAAA,SAAE,GAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;AACnC,CAAC;AAFD,oCAEC"}
|
package/src/index.d.ts
CHANGED
package/src/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
var services_1 = require("./services");
|
|
5
|
-
Object.defineProperty(exports, "TypeOrmQueryService", { enumerable: true, get: function () { return services_1.TypeOrmQueryService; } });
|
|
3
|
+
exports.TypeOrmQueryService = exports.NestjsQueryTypeOrmModule = void 0;
|
|
6
4
|
var module_1 = require("./module");
|
|
7
5
|
Object.defineProperty(exports, "NestjsQueryTypeOrmModule", { enumerable: true, get: function () { return module_1.NestjsQueryTypeOrmModule; } });
|
|
6
|
+
var services_1 = require("./services");
|
|
7
|
+
Object.defineProperty(exports, "TypeOrmQueryService", { enumerable: true, get: function () { return services_1.TypeOrmQueryService; } });
|
|
8
8
|
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/query-typeorm/src/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/query-typeorm/src/index.ts"],"names":[],"mappings":";;;AAAA,mCAAmD;AAA1C,kHAAA,wBAAwB,OAAA;AACjC,uCAAyE;AAAhE,+GAAA,mBAAmB,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-typeorm.js","sourceRoot":"","sources":["../../../../../packages/query-typeorm/src/lib/query-typeorm.ts"],"names":[],"mappings":";;;AAAA,SAAgB,YAAY;IAC1B,OAAO,eAAe,
|
|
1
|
+
{"version":3,"file":"query-typeorm.js","sourceRoot":"","sources":["../../../../../packages/query-typeorm/src/lib/query-typeorm.ts"],"names":[],"mappings":";;;AAAA,SAAgB,YAAY;IAC1B,OAAO,eAAe,CAAA;AACxB,CAAC;AAFD,oCAEC"}
|
package/src/module.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Class } from '@ptc-org/nestjs-query-core';
|
|
2
1
|
import { DynamicModule } from '@nestjs/common';
|
|
3
|
-
import {
|
|
2
|
+
import { Class } from '@ptc-org/nestjs-query-core';
|
|
3
|
+
import type { DataSource } from 'typeorm';
|
|
4
4
|
export declare class NestjsQueryTypeOrmModule {
|
|
5
|
-
static forFeature(entities: Class<unknown>[], connection?:
|
|
5
|
+
static forFeature(entities: Class<unknown>[], connection?: DataSource | string): DynamicModule;
|
|
6
6
|
}
|
package/src/module.js
CHANGED
|
@@ -11,7 +11,7 @@ class NestjsQueryTypeOrmModule {
|
|
|
11
11
|
imports: [typeOrmModule],
|
|
12
12
|
module: NestjsQueryTypeOrmModule,
|
|
13
13
|
providers: [...queryServiceProviders],
|
|
14
|
-
exports: [...queryServiceProviders, typeOrmModule]
|
|
14
|
+
exports: [...queryServiceProviders, typeOrmModule]
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
17
|
}
|
package/src/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../packages/query-typeorm/src/module.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../packages/query-typeorm/src/module.ts"],"names":[],"mappings":";;;AACA,6CAA+C;AAK/C,2CAAgE;AAEhE,MAAa,wBAAwB;IACnC,MAAM,CAAC,UAAU,CAAC,QAA0B,EAAE,UAAgC;QAC5E,MAAM,qBAAqB,GAAG,IAAA,8CAAkC,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;QACtF,MAAM,aAAa,GAAG,uBAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;QAEpE,OAAO;YACL,OAAO,EAAE,CAAC,aAAa,CAAC;YACxB,MAAM,EAAE,wBAAwB;YAChC,SAAS,EAAE,CAAC,GAAG,qBAAqB,CAAC;YACrC,OAAO,EAAE,CAAC,GAAG,qBAAqB,EAAE,aAAa,CAAC;SACnD,CAAA;IACH,CAAC;CACF;AAZD,4DAYC"}
|
package/src/providers.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Class } from '@ptc-org/nestjs-query-core';
|
|
2
1
|
import { FactoryProvider } from '@nestjs/common';
|
|
3
|
-
import {
|
|
4
|
-
|
|
2
|
+
import { Class } from '@ptc-org/nestjs-query-core';
|
|
3
|
+
import type { DataSource } from 'typeorm';
|
|
4
|
+
export declare const createTypeOrmQueryServiceProviders: (entities: Class<unknown>[], connection?: DataSource | string) => FactoryProvider[];
|
package/src/providers.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createTypeOrmQueryServiceProviders = void 0;
|
|
4
|
-
const nestjs_query_core_1 = require("@ptc-org/nestjs-query-core");
|
|
5
4
|
const typeorm_1 = require("@nestjs/typeorm");
|
|
5
|
+
const nestjs_query_core_1 = require("@ptc-org/nestjs-query-core");
|
|
6
6
|
const services_1 = require("./services");
|
|
7
7
|
function createTypeOrmQueryServiceProvider(EntityClass, connection) {
|
|
8
8
|
return {
|
|
@@ -10,7 +10,7 @@ function createTypeOrmQueryServiceProvider(EntityClass, connection) {
|
|
|
10
10
|
useFactory(repo) {
|
|
11
11
|
return new services_1.TypeOrmQueryService(repo);
|
|
12
12
|
},
|
|
13
|
-
inject: [(0, typeorm_1.getRepositoryToken)(EntityClass, connection)]
|
|
13
|
+
inject: [(0, typeorm_1.getRepositoryToken)(EntityClass, connection)]
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
16
|
const createTypeOrmQueryServiceProviders = (entities, connection) => entities.map((entity) => createTypeOrmQueryServiceProvider(entity, connection));
|
package/src/providers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../../../packages/query-typeorm/src/providers.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../../../packages/query-typeorm/src/providers.ts"],"names":[],"mappings":";;;AACA,6CAAoD;AACpD,kEAAwE;AAIxE,yCAAgD;AAEhD,SAAS,iCAAiC,CACxC,WAA0B,EAC1B,UAAgC;IAEhC,OAAO;QACL,OAAO,EAAE,IAAA,wCAAoB,EAAC,WAAW,CAAC;QAC1C,UAAU,CAAC,IAAwB;YACjC,OAAO,IAAI,8BAAmB,CAAC,IAAI,CAAC,CAAA;QACtC,CAAC;QACD,MAAM,EAAE,CAAC,IAAA,4BAAkB,EAAC,WAAW,EAAE,UAAU,CAAC,CAAC;KACtD,CAAA;AACH,CAAC;AAEM,MAAM,kCAAkC,GAAG,CAChD,QAA0B,EAC1B,UAAgC,EACb,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,iCAAiC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAA;AAH1F,QAAA,kCAAkC,sCAGwD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { SelectQueryBuilder } from 'typeorm';
|
|
2
1
|
import { AggregateQuery, AggregateResponse } from '@ptc-org/nestjs-query-core';
|
|
2
|
+
import { Repository, SelectQueryBuilder } from 'typeorm';
|
|
3
3
|
declare enum AggregateFuncs {
|
|
4
4
|
AVG = "AVG",
|
|
5
5
|
SUM = "SUM",
|
|
@@ -12,6 +12,8 @@ declare enum AggregateFuncs {
|
|
|
12
12
|
* Builds a WHERE clause from a Filter.
|
|
13
13
|
*/
|
|
14
14
|
export declare class AggregateBuilder<Entity> {
|
|
15
|
+
readonly repo: Repository<Entity>;
|
|
16
|
+
constructor(repo: Repository<Entity>);
|
|
15
17
|
static asyncConvertToAggregateResponse<Entity>(responsePromise: Promise<Record<string, unknown>[]>): Promise<AggregateResponse<Entity>[]>;
|
|
16
18
|
static getAggregateSelects<Entity>(query: AggregateQuery<Entity>): string[];
|
|
17
19
|
private static getAggregateGroupBySelects;
|
|
@@ -19,6 +21,10 @@ export declare class AggregateBuilder<Entity> {
|
|
|
19
21
|
static getAggregateAlias<Entity>(func: AggregateFuncs, field: keyof Entity): string;
|
|
20
22
|
static getGroupByAlias<Entity>(field: keyof Entity): string;
|
|
21
23
|
static convertToAggregateResponse<Entity>(rawAggregates: Record<string, unknown>[]): AggregateResponse<Entity>[];
|
|
24
|
+
/**
|
|
25
|
+
* Returns the corrected fields for orderBy and groupBy
|
|
26
|
+
*/
|
|
27
|
+
getCorrectedField(alias: string, field: string): string;
|
|
22
28
|
/**
|
|
23
29
|
* Builds a aggregate SELECT clause from a aggregate.
|
|
24
30
|
* @param qb - the `typeorm` SelectQueryBuilder
|
|
@@ -17,6 +17,9 @@ const AGG_REGEXP = /(AVG|SUM|COUNT|MAX|MIN|GROUP_BY)_(.*)/;
|
|
|
17
17
|
* Builds a WHERE clause from a Filter.
|
|
18
18
|
*/
|
|
19
19
|
class AggregateBuilder {
|
|
20
|
+
constructor(repo) {
|
|
21
|
+
this.repo = repo;
|
|
22
|
+
}
|
|
20
23
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
21
24
|
static async asyncConvertToAggregateResponse(responsePromise) {
|
|
22
25
|
const aggResponse = await responsePromise;
|
|
@@ -37,7 +40,7 @@ class AggregateBuilder {
|
|
|
37
40
|
[AggregateFuncs.SUM, query.sum],
|
|
38
41
|
[AggregateFuncs.AVG, query.avg],
|
|
39
42
|
[AggregateFuncs.MAX, query.max],
|
|
40
|
-
[AggregateFuncs.MIN, query.min]
|
|
43
|
+
[AggregateFuncs.MIN, query.min]
|
|
41
44
|
];
|
|
42
45
|
return aggs.reduce((cols, [func, fields]) => {
|
|
43
46
|
const aliases = (fields ?? []).map((f) => this.getAggregateAlias(func, f));
|
|
@@ -67,11 +70,22 @@ class AggregateBuilder {
|
|
|
67
70
|
return {
|
|
68
71
|
...agg,
|
|
69
72
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
70
|
-
[aggFunc]: { ...aggResult, [fieldName]: response[resultField] }
|
|
73
|
+
[aggFunc]: { ...aggResult, [fieldName]: response[resultField] }
|
|
71
74
|
};
|
|
72
75
|
}, {});
|
|
73
76
|
});
|
|
74
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* Returns the corrected fields for orderBy and groupBy
|
|
80
|
+
*/
|
|
81
|
+
getCorrectedField(alias, field) {
|
|
82
|
+
const col = alias ? `${alias}.${field}` : `${field}`;
|
|
83
|
+
const meta = this.repo.metadata.findColumnWithPropertyName(`${field}`);
|
|
84
|
+
if (meta && this.repo.manager.connection.driver.normalizeType(meta) === 'datetime') {
|
|
85
|
+
return `DATE(${col})`;
|
|
86
|
+
}
|
|
87
|
+
return col;
|
|
88
|
+
}
|
|
75
89
|
/**
|
|
76
90
|
* Builds a aggregate SELECT clause from a aggregate.
|
|
77
91
|
* @param qb - the `typeorm` SelectQueryBuilder
|
|
@@ -85,7 +99,7 @@ class AggregateBuilder {
|
|
|
85
99
|
...this.createAggSelect(AggregateFuncs.SUM, aggregate.sum, alias),
|
|
86
100
|
...this.createAggSelect(AggregateFuncs.AVG, aggregate.avg, alias),
|
|
87
101
|
...this.createAggSelect(AggregateFuncs.MAX, aggregate.max, alias),
|
|
88
|
-
...this.createAggSelect(AggregateFuncs.MIN, aggregate.min, alias)
|
|
102
|
+
...this.createAggSelect(AggregateFuncs.MIN, aggregate.min, alias)
|
|
89
103
|
];
|
|
90
104
|
if (!selects.length) {
|
|
91
105
|
throw new common_1.BadRequestException('No aggregate fields found.');
|
|
@@ -108,7 +122,12 @@ class AggregateBuilder {
|
|
|
108
122
|
}
|
|
109
123
|
return fields.map((field) => {
|
|
110
124
|
const col = alias ? `${alias}.${field}` : field;
|
|
111
|
-
|
|
125
|
+
const groupByAlias = AggregateBuilder.getGroupByAlias(field);
|
|
126
|
+
const meta = this.repo.metadata.findColumnWithPropertyName(`${field}`);
|
|
127
|
+
if (meta && this.repo.manager.connection.driver.normalizeType(meta) === 'datetime') {
|
|
128
|
+
return [`DATE(${col})`, groupByAlias];
|
|
129
|
+
}
|
|
130
|
+
return [`${col}`, groupByAlias];
|
|
112
131
|
});
|
|
113
132
|
}
|
|
114
133
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate.builder.js","sourceRoot":"","sources":["../../../../../packages/query-typeorm/src/query/aggregate.builder.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"aggregate.builder.js","sourceRoot":"","sources":["../../../../../packages/query-typeorm/src/query/aggregate.builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Filter, Paging, Query, SortField
|
|
2
|
-
import { DeleteQueryBuilder, QueryBuilder, Repository, SelectQueryBuilder, UpdateQueryBuilder,
|
|
1
|
+
import { AggregateQuery, Filter, Paging, Query, SortField } from '@ptc-org/nestjs-query-core';
|
|
2
|
+
import { DeleteQueryBuilder, EntityMetadata, QueryBuilder, Repository, SelectQueryBuilder, UpdateQueryBuilder, WhereExpressionBuilder } from 'typeorm';
|
|
3
3
|
import { SoftDeleteQueryBuilder } from 'typeorm/query-builder/SoftDeleteQueryBuilder';
|
|
4
4
|
import { AggregateBuilder } from './aggregate.builder';
|
|
5
5
|
import { WhereBuilder } from './where.builder';
|
|
@@ -91,7 +91,7 @@ export declare class FilterQueryBuilder<Entity> {
|
|
|
91
91
|
* @param filter - the filter.
|
|
92
92
|
* @param alias - optional alias to use to qualify an identifier
|
|
93
93
|
*/
|
|
94
|
-
applyFilter<Where extends
|
|
94
|
+
applyFilter<Where extends WhereExpressionBuilder>(qb: Where, filter?: Filter<Entity>, alias?: string): Where;
|
|
95
95
|
/**
|
|
96
96
|
* Applies the ORDER BY clause to a `typeorm` QueryBuilder.
|
|
97
97
|
* @param qb - the `typeorm` QueryBuilder.
|
|
@@ -99,7 +99,7 @@ export declare class FilterQueryBuilder<Entity> {
|
|
|
99
99
|
* @param alias - optional alias to use to qualify an identifier
|
|
100
100
|
*/
|
|
101
101
|
applySorting<T extends Sortable<Entity>>(qb: T, sorts?: SortField<Entity>[], alias?: string): T;
|
|
102
|
-
|
|
102
|
+
applyAggregateGroupBy<T extends Groupable<Entity>>(qb: T, groupBy?: (keyof Entity)[], alias?: string): T;
|
|
103
103
|
applyAggregateSorting<T extends Sortable<Entity>>(qb: T, groupBy?: (keyof Entity)[], alias?: string): T;
|
|
104
104
|
/**
|
|
105
105
|
* Create a `typeorm` SelectQueryBuilder which can be used as an entry point to create update, delete or insert
|
|
@@ -3,16 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.FilterQueryBuilder = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const nestjs_query_core_1 = require("@ptc-org/nestjs-query-core");
|
|
6
|
+
const lodash_merge_1 = (0, tslib_1.__importDefault)(require("lodash.merge"));
|
|
6
7
|
const aggregate_builder_1 = require("./aggregate.builder");
|
|
7
8
|
const where_builder_1 = require("./where.builder");
|
|
8
|
-
const lodash_merge_1 = (0, tslib_1.__importDefault)(require("lodash.merge"));
|
|
9
9
|
/**
|
|
10
10
|
* @internal
|
|
11
11
|
*
|
|
12
12
|
* Class that will convert a Query into a `typeorm` Query Builder.
|
|
13
13
|
*/
|
|
14
14
|
class FilterQueryBuilder {
|
|
15
|
-
constructor(repo, whereBuilder = new where_builder_1.WhereBuilder(), aggregateBuilder = new aggregate_builder_1.AggregateBuilder()) {
|
|
15
|
+
constructor(repo, whereBuilder = new where_builder_1.WhereBuilder(), aggregateBuilder = new aggregate_builder_1.AggregateBuilder(repo)) {
|
|
16
16
|
this.repo = repo;
|
|
17
17
|
this.whereBuilder = whereBuilder;
|
|
18
18
|
this.aggregateBuilder = aggregateBuilder;
|
|
@@ -46,11 +46,15 @@ class FilterQueryBuilder {
|
|
|
46
46
|
return qb;
|
|
47
47
|
}
|
|
48
48
|
aggregate(query, aggregate) {
|
|
49
|
+
const hasRelations = this.filterHasRelations(query.filter);
|
|
49
50
|
let qb = this.createQueryBuilder();
|
|
51
|
+
qb = hasRelations
|
|
52
|
+
? this.applyRelationJoinsRecursive(qb, this.getReferencedRelationsRecursive(this.repo.metadata, query.filter))
|
|
53
|
+
: qb;
|
|
50
54
|
qb = this.applyAggregate(qb, aggregate, qb.alias);
|
|
51
55
|
qb = this.applyFilter(qb, query.filter, qb.alias);
|
|
52
56
|
qb = this.applyAggregateSorting(qb, aggregate.groupBy, qb.alias);
|
|
53
|
-
qb = this.
|
|
57
|
+
qb = this.applyAggregateGroupBy(qb, aggregate.groupBy, qb.alias);
|
|
54
58
|
return qb;
|
|
55
59
|
}
|
|
56
60
|
/**
|
|
@@ -131,13 +135,12 @@ class FilterQueryBuilder {
|
|
|
131
135
|
return prevQb.addOrderBy(col, direction, nulls);
|
|
132
136
|
}, qb);
|
|
133
137
|
}
|
|
134
|
-
|
|
138
|
+
applyAggregateGroupBy(qb, groupBy, alias) {
|
|
135
139
|
if (!groupBy) {
|
|
136
140
|
return qb;
|
|
137
141
|
}
|
|
138
|
-
return groupBy.reduce((prevQb,
|
|
139
|
-
|
|
140
|
-
return prevQb.addGroupBy(col);
|
|
142
|
+
return groupBy.reduce((prevQb, field) => {
|
|
143
|
+
return prevQb.addGroupBy(this.aggregateBuilder.getCorrectedField(alias, field));
|
|
141
144
|
}, qb);
|
|
142
145
|
}
|
|
143
146
|
applyAggregateSorting(qb, groupBy, alias) {
|
|
@@ -145,8 +148,7 @@ class FilterQueryBuilder {
|
|
|
145
148
|
return qb;
|
|
146
149
|
}
|
|
147
150
|
return groupBy.reduce((prevQb, field) => {
|
|
148
|
-
|
|
149
|
-
return prevQb.addOrderBy(col, 'ASC');
|
|
151
|
+
return prevQb.addOrderBy(this.aggregateBuilder.getCorrectedField(alias, field), 'ASC');
|
|
150
152
|
}, qb);
|
|
151
153
|
}
|
|
152
154
|
/**
|
|
@@ -204,7 +206,7 @@ class FilterQueryBuilder {
|
|
|
204
206
|
return prev;
|
|
205
207
|
return {
|
|
206
208
|
...prev,
|
|
207
|
-
[curr]: (0, lodash_merge_1.default)(prev[curr], this.getReferencedRelationsRecursive(referencedRelation.inverseEntityMetadata, currFilterValue))
|
|
209
|
+
[curr]: (0, lodash_merge_1.default)(prev[curr], this.getReferencedRelationsRecursive(referencedRelation.inverseEntityMetadata, currFilterValue))
|
|
208
210
|
};
|
|
209
211
|
}, {});
|
|
210
212
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-query.builder.js","sourceRoot":"","sources":["../../../../../packages/query-typeorm/src/query/filter-query.builder.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"filter-query.builder.js","sourceRoot":"","sources":["../../../../../packages/query-typeorm/src/query/filter-query.builder.ts"],"names":[],"mappings":"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"}
|
package/src/query/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
export * from './aggregate.builder';
|
|
1
2
|
export * from './filter-query.builder';
|
|
2
|
-
export * from './where.builder';
|
|
3
|
-
export * from './sql-comparison.builder';
|
|
4
3
|
export * from './relation-query.builder';
|
|
5
|
-
export * from './
|
|
4
|
+
export * from './sql-comparison.builder';
|
|
5
|
+
export * from './where.builder';
|
package/src/query/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
|
+
(0, tslib_1.__exportStar)(require("./aggregate.builder"), exports);
|
|
4
5
|
(0, tslib_1.__exportStar)(require("./filter-query.builder"), exports);
|
|
5
|
-
(0, tslib_1.__exportStar)(require("./where.builder"), exports);
|
|
6
|
-
(0, tslib_1.__exportStar)(require("./sql-comparison.builder"), exports);
|
|
7
6
|
(0, tslib_1.__exportStar)(require("./relation-query.builder"), exports);
|
|
8
|
-
(0, tslib_1.__exportStar)(require("./
|
|
7
|
+
(0, tslib_1.__exportStar)(require("./sql-comparison.builder"), exports);
|
|
8
|
+
(0, tslib_1.__exportStar)(require("./where.builder"), exports);
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
package/src/query/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/query-typeorm/src/query/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/query-typeorm/src/query/index.ts"],"names":[],"mappings":";;;AAAA,mEAAmC;AACnC,sEAAsC;AACtC,wEAAwC;AACxC,wEAAwC;AACxC,+DAA+B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AggregateQuery, Class, Query } from '@ptc-org/nestjs-query-core';
|
|
2
|
-
import { Repository, SelectQueryBuilder
|
|
2
|
+
import { ObjectLiteral, Repository, SelectQueryBuilder } from 'typeorm';
|
|
3
3
|
import { RelationMetadata } from 'typeorm/metadata/RelationMetadata';
|
|
4
4
|
import { FilterQueryBuilder } from './filter-query.builder';
|
|
5
5
|
interface JoinCondition {
|
|
@@ -53,7 +53,7 @@ export declare class RelationQueryBuilder<Entity, Relation> {
|
|
|
53
53
|
private existingAlias;
|
|
54
54
|
constructor(repo: Repository<Entity>, relation: string);
|
|
55
55
|
select(entity: Entity, query: Query<Relation>): SelectQueryBuilder<Relation>;
|
|
56
|
-
batchSelect(entities: Entity[], query: Query<Relation
|
|
56
|
+
batchSelect(entities: Entity[], query: Query<Relation>, withDeleted?: boolean): SelectQueryBuilder<Relation>;
|
|
57
57
|
batchAggregate(entities: Entity[], query: Query<Relation>, aggregateQuery: AggregateQuery<Relation>): SelectQueryBuilder<EntityIndexRelation<Record<string, unknown>>>;
|
|
58
58
|
aggregate(entity: Entity, query: Query<Relation>, aggregateQuery: AggregateQuery<Relation>): SelectQueryBuilder<Relation>;
|
|
59
59
|
get relationMeta(): RelationQuery<Relation, Entity>;
|