@ptc-org/nestjs-query-mongoose 6.1.2 → 6.1.3

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ptc-org/nestjs-query-mongoose",
3
- "version": "6.1.2",
3
+ "version": "6.1.3",
4
4
  "description": "Mongoose 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,7 +22,7 @@
22
22
  "lodash.escaperegexp": "^4.1.2",
23
23
  "lodash.merge": "^4.6.2",
24
24
  "tslib": "^2.6.2",
25
- "@ptc-org/nestjs-query-core": "6.1.2",
25
+ "@ptc-org/nestjs-query-core": "6.1.3",
26
26
  "reflect-metadata": "0.2.2"
27
27
  },
28
28
  "peerDependencies": {
@@ -31,44 +31,10 @@ export declare abstract class ReferenceQueryService<Entity extends Document> {
31
31
  aggregateRelations<Relation extends Document>(RelationClass: Class<Relation>, relationName: string, dto: Entity, filter: Filter<Relation>, aggregate: AggregateQuery<Relation>): Promise<AggregateResponse<Relation>[]>;
32
32
  countRelations<Relation extends Document>(RelationClass: Class<Relation>, relationName: string, entities: Entity[], filter: Filter<Relation>): Promise<Map<Entity, number>>;
33
33
  countRelations<Relation extends Document>(RelationClass: Class<Relation>, relationName: string, dto: Entity, filter: Filter<Relation>): Promise<number>;
34
- findRelation<Relation extends Document>(RelationClass: Class<Relation>, relationName: string, dtos: Entity[], opts?: FindRelationOptions<Relation>): Promise<Map<Entity, Relation | undefined>>;
35
- findRelation<Relation extends Document>(RelationClass: Class<Relation>, relationName: string, dto: Entity, opts?: FindRelationOptions<Relation>): Promise<Relation | undefined>;
36
- /**
37
- * Query for an array of relations for multiple dtos.
38
- * @param RelationClass - The class to serialize the relations into.
39
- * @param dtos - The entities to query relations for.
40
- * @param relationName - The name of relation to query for.
41
- * @param opts - A query to filter, page or sort relations.
42
- * @param withDeleted - Also query the soft deleted records
43
- */
44
- private batchQueryRelations;
45
- /**
46
- * Query for an array of relations for multiple dtos.
47
- * @param RelationClass - The class to serialize the relations into.
48
- * @param entities - The entities to query relations for.
49
- * @param relationName - The name of relation to query for.
50
- * @param filter - Filter.
51
- * @param query - A query to filter, page or sort relations.
52
- */
53
- private batchAggregateRelations;
54
- /**
55
- * Count the number of relations for multiple dtos.
56
- * @param RelationClass - The class to serialize the relations into.
57
- * @param entities - The entities to query relations for.
58
- * @param relationName - The name of relation to query for.
59
- * @param filter - The filter to apply to the relation query.
60
- */
61
- private batchCountRelations;
62
- /**
63
- * Query for a relation for multiple dtos.
64
- * @param RelationClass - The class to serialize the relations into.
65
- * @param dtos - The dto to query relations for.
66
- * @param relationName - The name of relation to query for.
67
- * @param opts - A query to filter, page or sort relations.
68
- */
69
- private batchFindRelations;
70
- queryRelations<Relation extends Document>(RelationClass: Class<Relation>, relationName: string, entities: Entity[], query: Query<Relation>): Promise<Map<Entity, Relation[]>>;
71
- queryRelations<Relation extends Document>(RelationClass: Class<Relation>, relationName: string, dto: Entity, query: Query<Relation>): Promise<Relation[]>;
34
+ findRelation<Relation>(RelationClass: Class<Relation>, relationName: string, dtos: Entity[], opts?: FindRelationOptions<Relation>): Promise<Map<Entity, Relation | undefined>>;
35
+ findRelation<Relation>(RelationClass: Class<Relation>, relationName: string, dto: Entity, opts?: FindRelationOptions<Relation>): Promise<Relation | undefined>;
36
+ queryRelations<Relation>(RelationClass: Class<Relation>, relationName: string, entities: Entity[], query: Query<Relation>): Promise<Map<Entity, Relation[]>>;
37
+ queryRelations<Relation>(RelationClass: Class<Relation>, relationName: string, dto: Entity, query: Query<Relation>): Promise<Relation[]>;
72
38
  addRelations<Relation extends Document>(relationName: string, id: string, relationIds: (string | number)[], opts?: ModifyRelationOptions<Entity, Relation>): Promise<Entity>;
73
39
  setRelations<Relation extends Document>(relationName: string, id: string, relationIds: (string | number)[], opts?: ModifyRelationOptions<Entity, Relation>): Promise<Entity>;
74
40
  setRelation<Relation extends Document>(relationName: string, id: string | number, relationId: string | number, opts?: ModifyRelationOptions<Entity, Relation>): Promise<Entity>;
@@ -80,7 +46,7 @@ export declare abstract class ReferenceQueryService<Entity extends Document> {
80
46
  private getReferenceQueryBuilder;
81
47
  private getReferenceModel;
82
48
  private getReferenceFilter;
83
- private getReferenceIds;
84
- private getReferenceFieldMap;
49
+ private getObjectIdReferenceFilter;
50
+ private getVirtualReferenceFilter;
85
51
  private getRefCount;
86
52
  }
@@ -9,12 +9,16 @@ const query_1 = require("../query");
9
9
  class ReferenceQueryService {
10
10
  async aggregateRelations(RelationClass, relationName, dto, filter, aggregateQuery) {
11
11
  this.checkForReference('AggregateRelations', relationName);
12
+ const relationModel = this.getReferenceModel(relationName);
13
+ const referenceQueryBuilder = this.getReferenceQueryBuilder(relationName);
12
14
  if (Array.isArray(dto)) {
13
- return this.batchAggregateRelations(RelationClass, relationName, dto, filter, aggregateQuery);
15
+ return dto.reduce(async (mapPromise, entity) => {
16
+ const map = await mapPromise;
17
+ const refs = await this.aggregateRelations(RelationClass, relationName, entity, filter, aggregateQuery);
18
+ return map.set(entity, refs);
19
+ }, Promise.resolve(new Map()));
14
20
  }
15
21
  const assembler = nestjs_query_core_1.AssemblerFactory.getAssembler(RelationClass, mongoose_1.Document);
16
- const relationModel = this.getReferenceModel(relationName);
17
- const referenceQueryBuilder = this.getReferenceQueryBuilder(relationName);
18
22
  const refFilter = this.getReferenceFilter(relationName, dto, assembler.convertQuery({ filter }).filter);
19
23
  if (!refFilter) {
20
24
  return [];
@@ -30,7 +34,11 @@ class ReferenceQueryService {
30
34
  async countRelations(RelationClass, relationName, dto, filter) {
31
35
  this.checkForReference('CountRelations', relationName);
32
36
  if (Array.isArray(dto)) {
33
- return this.batchCountRelations(RelationClass, relationName, dto, filter);
37
+ return dto.reduce(async (mapPromise, entity) => {
38
+ const map = await mapPromise;
39
+ const refs = await this.countRelations(RelationClass, relationName, entity, filter);
40
+ return map.set(entity, refs);
41
+ }, Promise.resolve(new Map()));
34
42
  }
35
43
  const assembler = nestjs_query_core_1.AssemblerFactory.getAssembler(RelationClass, mongoose_1.Document);
36
44
  const relationModel = this.getReferenceModel(relationName);
@@ -43,126 +51,39 @@ class ReferenceQueryService {
43
51
  }
44
52
  async findRelation(RelationClass, relationName, dto, opts) {
45
53
  this.checkForReference('FindRelation', relationName);
54
+ const referenceQueryBuilder = this.getReferenceQueryBuilder(relationName);
46
55
  if (Array.isArray(dto)) {
47
- return this.batchFindRelations(RelationClass, relationName, dto, opts);
56
+ return dto.reduce(async (prev, curr) => {
57
+ const map = await prev;
58
+ const ref = await this.findRelation(RelationClass, relationName, curr, opts);
59
+ return map.set(curr, ref);
60
+ }, Promise.resolve(new Map()));
48
61
  }
49
62
  const foundEntity = await this.Model.findById(dto._id ?? dto.id);
50
63
  if (!foundEntity) {
51
64
  return undefined;
52
65
  }
53
66
  const assembler = nestjs_query_core_1.AssemblerFactory.getAssembler(RelationClass, mongoose_1.Document);
54
- const referenceQueryBuilder = this.getReferenceQueryBuilder(relationName);
55
67
  const filterQuery = referenceQueryBuilder.buildFilterQuery(assembler.convertQuery({ filter: opts?.filter }).filter);
56
68
  const populated = await foundEntity.populate({ path: relationName, match: filterQuery });
57
69
  const populatedRef = populated.get(relationName);
58
70
  return populatedRef ? assembler.convertToDTO(populatedRef) : undefined;
59
71
  }
60
- /**
61
- * Query for an array of relations for multiple dtos.
62
- * @param RelationClass - The class to serialize the relations into.
63
- * @param dtos - The entities to query relations for.
64
- * @param relationName - The name of relation to query for.
65
- * @param opts - A query to filter, page or sort relations.
66
- * @param withDeleted - Also query the soft deleted records
67
- */
68
- async batchQueryRelations(RelationClass, relationName, dtos, opts, withDeleted) {
69
- const assembler = nestjs_query_core_1.AssemblerFactory.getAssembler(RelationClass, mongoose_1.Document);
70
- const referenceQueryBuilder = this.getReferenceQueryBuilder(relationName);
71
- const query = assembler.convertQuery(opts);
72
- // If paging is enabled, we need to query each entity individually
73
- if (query.paging) {
74
- const entityRelations = await Promise.all(dtos.map((d) => this.queryRelations(RelationClass, relationName, d, opts)));
75
- return entityRelations.reduce((results, relations, index) => {
76
- const e = dtos[index];
77
- results.set(e, relations);
78
- return results;
79
- }, new Map());
80
- }
81
- const refFilter = this.getReferenceFilter(relationName, dtos, query.filter);
82
- const results = new Map();
83
- if (!refFilter) {
84
- return results;
85
- }
86
- const refFieldMap = this.getReferenceFieldMap(relationName);
87
- if (!refFieldMap) {
88
- return results;
89
- }
90
- const { filterQuery, options } = referenceQueryBuilder.buildQuery({ ...query, filter: refFilter });
91
- const referenceModel = this.getReferenceModel(relationName);
92
- const entityRelations = await referenceModel.find(filterQuery).sort(options.sort).exec();
93
- for (const dto of dtos) {
94
- const referenceIds = this.getReferenceIds(refFieldMap.localField, dto);
95
- const refs = entityRelations.filter((er) => {
96
- return referenceIds.some((rid) => {
97
- const oneOrManyIds = er[refFieldMap.foreignField];
98
- const ids = (Array.isArray(oneOrManyIds) ? oneOrManyIds : [oneOrManyIds]);
99
- return ids.some((id) => id.equals(rid));
100
- });
101
- });
102
- results.set(dto, await assembler.convertToDTOs(refs));
103
- }
104
- return results;
105
- }
106
- /**
107
- * Query for an array of relations for multiple dtos.
108
- * @param RelationClass - The class to serialize the relations into.
109
- * @param entities - The entities to query relations for.
110
- * @param relationName - The name of relation to query for.
111
- * @param filter - Filter.
112
- * @param query - A query to filter, page or sort relations.
113
- */
114
- async batchAggregateRelations(RelationClass, relationName, entities, filter, query) {
115
- const entityRelations = await Promise.all(entities.map((e) => this.aggregateRelations(RelationClass, relationName, e, filter, query)));
116
- return entityRelations.reduce((results, relationAggregate, index) => {
117
- const e = entities[index];
118
- results.set(e, relationAggregate);
119
- return results;
120
- }, new Map());
121
- }
122
- /**
123
- * Count the number of relations for multiple dtos.
124
- * @param RelationClass - The class to serialize the relations into.
125
- * @param entities - The entities to query relations for.
126
- * @param relationName - The name of relation to query for.
127
- * @param filter - The filter to apply to the relation query.
128
- */
129
- async batchCountRelations(RelationClass, relationName, entities, filter) {
130
- const entityRelations = await Promise.all(entities.map((e) => this.countRelations(RelationClass, relationName, e, filter)));
131
- return entityRelations.reduce((results, relationCount, index) => {
132
- const e = entities[index];
133
- results.set(e, relationCount);
134
- return results;
135
- }, new Map());
136
- }
137
- /**
138
- * Query for a relation for multiple dtos.
139
- * @param RelationClass - The class to serialize the relations into.
140
- * @param dtos - The dto to query relations for.
141
- * @param relationName - The name of relation to query for.
142
- * @param opts - A query to filter, page or sort relations.
143
- */
144
- async batchFindRelations(RelationClass, relationName, dtos, opts) {
145
- const batchResults = await this.batchQueryRelations(RelationClass, relationName, dtos, {
146
- filter: opts?.filter
147
- }, opts?.withDeleted);
148
- const results = new Map();
149
- batchResults.forEach((relation, dto) => {
150
- // get just the first one.
151
- results.set(dto, relation[0]);
152
- });
153
- return results;
154
- }
155
72
  async queryRelations(RelationClass, relationName, dto, query) {
156
73
  this.checkForReference('QueryRelations', relationName);
74
+ const referenceQueryBuilder = this.getReferenceQueryBuilder(relationName);
157
75
  if (Array.isArray(dto)) {
158
- return this.batchQueryRelations(RelationClass, relationName, dto, query);
76
+ return dto.reduce(async (mapPromise, entity) => {
77
+ const map = await mapPromise;
78
+ const refs = await this.queryRelations(RelationClass, relationName, entity, query);
79
+ return map.set(entity, refs);
80
+ }, Promise.resolve(new Map()));
159
81
  }
160
82
  const foundEntity = await this.Model.findById(dto._id ?? dto.id);
161
83
  if (!foundEntity) {
162
84
  return [];
163
85
  }
164
86
  const assembler = nestjs_query_core_1.AssemblerFactory.getAssembler(RelationClass, mongoose_1.Document);
165
- const referenceQueryBuilder = this.getReferenceQueryBuilder(relationName);
166
87
  const { filterQuery, options } = referenceQueryBuilder.buildQuery(assembler.convertQuery(query));
167
88
  const populated = await foundEntity.populate({ path: relationName, match: filterQuery, options });
168
89
  return assembler.convertToDTOs(populated.get(relationName));
@@ -274,39 +195,34 @@ class ReferenceQueryService {
274
195
  throw new Error(`Unable to lookup reference type for ${refName}`);
275
196
  }
276
197
  getReferenceFilter(refName, entity, filter) {
277
- const refFieldMap = this.getReferenceFieldMap(refName);
278
- if (!refFieldMap) {
279
- return undefined;
280
- }
281
- const referenceIds = this.getReferenceIds(refFieldMap.localField, entity);
282
- const refFilter = {
283
- [refFieldMap.foreignField]: { in: referenceIds }
284
- };
285
- return (0, nestjs_query_core_1.mergeFilter)(filter ?? {}, refFilter);
286
- }
287
- getReferenceIds(localField, entity) {
288
- const entities = Array.isArray(entity) ? entity : [entity];
289
- return entities.flatMap((e) => e[localField]).filter((id) => !!id);
290
- }
291
- getReferenceFieldMap(refName) {
292
198
  if (this.isReferencePath(refName)) {
293
- return {
294
- foreignField: '_id',
295
- localField: refName
296
- };
199
+ return this.getObjectIdReferenceFilter(refName, entity, filter);
297
200
  }
298
201
  if (this.isVirtualPath(refName)) {
299
202
  const virtualType = this.Model.schema.virtualpath(refName);
300
- if (!(0, mongoose_types_helper_1.isVirtualTypeWithReferenceOptions)(virtualType)) {
301
- throw new Error(`Unable to lookup reference type for ${refName}`);
203
+ if ((0, mongoose_types_helper_1.isVirtualTypeWithReferenceOptions)(virtualType)) {
204
+ return this.getVirtualReferenceFilter(virtualType, entity, filter);
302
205
  }
303
- return {
304
- foreignField: virtualType.options.foreignField,
305
- localField: virtualType.options.localField
306
- };
206
+ throw new Error(`Unable to lookup reference type for ${refName}`);
307
207
  }
308
208
  return undefined;
309
209
  }
210
+ getObjectIdReferenceFilter(refName, entity, filter) {
211
+ const referenceIds = entity[refName];
212
+ const refFilter = {
213
+ _id: { [Array.isArray(referenceIds) ? 'in' : 'eq']: referenceIds }
214
+ };
215
+ return (0, nestjs_query_core_1.mergeFilter)(filter ?? {}, refFilter);
216
+ }
217
+ getVirtualReferenceFilter(virtualType, entity, filter) {
218
+ const { foreignField, localField } = virtualType.options;
219
+ const refVal = entity[localField];
220
+ const isArray = Array.isArray(refVal);
221
+ const lookupFilter = {
222
+ [foreignField]: { [isArray ? 'in' : 'eq']: refVal }
223
+ };
224
+ return (0, nestjs_query_core_1.mergeFilter)(filter ?? {}, lookupFilter);
225
+ }
310
226
  getRefCount(relationName, relationIds, filter) {
311
227
  const referenceModel = this.getReferenceModel(relationName);
312
228
  const referenceQueryBuilder = this.getReferenceQueryBuilder(relationName);
@@ -1 +1 @@
1
- {"version":3,"file":"reference-query.service.js","sourceRoot":"","sources":["../../../../../packages/query-mongoose/src/services/reference-query.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reference-query.service.js","sourceRoot":"","sources":["../../../../../packages/query-mongoose/src/services/reference-query.service.ts"],"names":[],"mappings":"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"}