Skip to content

Commit d679a90

Browse files
committed
refactor: drop unnecessary generics from V3 checksum helpers
Replace TRequest generic with concrete FetchPartialBucketChecksumByBucket in createBucketFilter, buildPartialChecksumPipeline, and normalizePartialChecksumResults. Call createBucketFilter directly in buildPartialChecksumPipeline instead of threading it as a parameter. Drop the unused createFilter parameter from the V3 override of computePartialChecksumsForCollection. TypeScript allows method overrides to have fewer parameters than the base, and the V3 body no longer uses it. Callers still pass createBucketFilter to satisfy the base class contract, but it is silently stripped. The two generics TRequest and TBucketDataDocument on the override must stay — MongoDB Collection<T> is invariant and V1 callers pass types narrower than the concrete alternatives.
1 parent b9fa301 commit d679a90

1 file changed

Lines changed: 7 additions & 15 deletions

File tree

modules/module-mongodb-storage/src/storage/implementation/v3/MongoChecksumsV3.ts

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ export class MongoChecksumsV3 extends MongoChecksums {
4949
this.group_id,
5050
definitionId
5151
) as unknown as lib_mongo.mongo.Collection<BucketDataDocumentBase>,
52-
createBucketFilter
5352
);
5453
for (const checksum of groupResults.values()) {
5554
results.set(checksum.bucket, checksum);
@@ -132,7 +131,6 @@ export class MongoChecksumsV3 extends MongoChecksums {
132131
this.group_id,
133132
definitionId
134133
) as unknown as lib_mongo.mongo.Collection<BucketDataDocumentBase>,
135-
createBucketFilter
136134
);
137135
for (const checksum of groupResults.values()) {
138136
results.set(checksum.bucket, checksum);
@@ -150,14 +148,13 @@ export class MongoChecksumsV3 extends MongoChecksums {
150148
>(
151149
batch: TRequest[],
152150
collection: lib_mongo.mongo.Collection<TBucketDataDocument>,
153-
createFilter: (request: TRequest) => any
154151
): Promise<PartialChecksumMap> {
155-
const requests = new Map<string, TRequest>();
152+
const requests = new Map<string, FetchPartialBucketChecksumByBucket>();
156153
for (let request of batch) {
157154
requests.set(request.bucket, request);
158155
}
159156

160-
const pipeline = this.buildPartialChecksumPipeline(requests, createFilter);
157+
const pipeline = this.buildPartialChecksumPipeline(requests);
161158
const aggregate = await collection
162159
.aggregate(pipeline, {
163160
session: undefined,
@@ -172,11 +169,8 @@ export class MongoChecksumsV3 extends MongoChecksums {
172169
return this.normalizePartialChecksumResults(batch, aggregate);
173170
}
174171

175-
private buildPartialChecksumPipeline<TRequest extends FetchPartialBucketChecksumByBucket>(
176-
requests: Map<string, TRequest>,
177-
createFilter: (request: TRequest) => any
178-
): bson.Document[] {
179-
const filters = Array.from(requests.values(), createFilter);
172+
private buildPartialChecksumPipeline(requests: Map<string, FetchPartialBucketChecksumByBucket>): bson.Document[] {
173+
const filters = Array.from(requests.values(), createBucketFilter);
180174

181175
return [
182176
// $match with $or filters
@@ -296,8 +290,8 @@ export class MongoChecksumsV3 extends MongoChecksums {
296290
];
297291
}
298292

299-
private normalizePartialChecksumResults<TRequest extends FetchPartialBucketChecksumByBucket>(
300-
batch: TRequest[],
293+
private normalizePartialChecksumResults(
294+
batch: FetchPartialBucketChecksumByBucket[],
301295
aggregate: bson.Document[]
302296
): PartialChecksumMap {
303297
const partialChecksums = new Map<string, PartialOrFullChecksum>();
@@ -331,9 +325,7 @@ export class MongoChecksumsV3 extends MongoChecksums {
331325
}
332326
}
333327

334-
function createBucketFilter<TRequest extends Pick<FetchPartialBucketChecksumByBucket, 'bucket' | 'start' | 'end'>>(
335-
request: TRequest
336-
) {
328+
function createBucketFilter(request: Pick<FetchPartialBucketChecksumByBucket, 'bucket' | 'start' | 'end'>) {
337329
return {
338330
_id: {
339331
$gt: {

0 commit comments

Comments
 (0)