Skip to content

Commit 98a105b

Browse files
committed
fix: old servers
1 parent 8021ed3 commit 98a105b

File tree

3 files changed

+11
-8
lines changed

3 files changed

+11
-8
lines changed

src/cmap/wire_protocol/responses.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,10 +129,10 @@ export class CursorResponse extends MongoDBResponse {
129129
public id: Long | null = null;
130130
public ns: MongoDBNamespace | null = null;
131131
public documents: any | null = null;
132+
public batchSize = 0;
132133

133134
private batch: OnDemandDocument | null = null;
134135
private values: Generator<OnDemandDocument, void, void> | null = null;
135-
private batchSize = 0;
136136
private iterated = 0;
137137

138138
constructor(b: Uint8Array, o?: number, a?: boolean) {
@@ -184,7 +184,7 @@ export class CursorResponse extends MongoDBResponse {
184184
});
185185
}
186186

187-
static isCursorResponse(value: unknown): value is CursorResponse {
187+
static override is(value: unknown): value is CursorResponse {
188188
return value instanceof CursorResponse;
189189
}
190190
}

src/cursor/abstract_cursor.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -657,7 +657,7 @@ export abstract class AbstractCursor<
657657
const state = await this._initialize(this[kSession]);
658658
const response = state.response;
659659
this[kServer] = state.server;
660-
if (CursorResponse.isCursorResponse(response)) {
660+
if (CursorResponse.is(response)) {
661661
this[kId] = response.id;
662662
if (response.ns) this[kNamespace] = response.ns;
663663
this[kDocuments] = response.documents;
@@ -798,7 +798,7 @@ async function next<T>(
798798

799799
try {
800800
const response = await cursor.getMore(batchSize);
801-
if (CursorResponse.isCursorResponse(response)) {
801+
if (CursorResponse.is(response)) {
802802
cursor[kId] = response.id;
803803
cursor[kDocuments] = response.documents;
804804
} else if (response) {

src/cursor/find_cursor.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { type Document, Long } from '../bson';
2+
import { CursorResponse } from '../cmap/wire_protocol/responses';
23
import { MongoInvalidArgumentError, MongoTailableCursorError } from '../error';
34
import { type ExplainVerbosityLike } from '../explain';
45
import type { MongoClient } from '../mongo_client';
@@ -34,7 +35,7 @@ export class FindCursor<TSchema = any> extends AbstractCursor<TSchema> {
3435
/** @internal */
3536
[kFilter]: Document;
3637
/** @internal */
37-
[kNumReturned]?: number;
38+
[kNumReturned] = 0;
3839
/** @internal */
3940
[kBuiltOptions]: FindOptions;
4041

@@ -78,7 +79,9 @@ export class FindCursor<TSchema = any> extends AbstractCursor<TSchema> {
7879
const response = await executeOperation(this.client, findOperation);
7980

8081
// the response is not a cursor when `explain` is enabled
81-
this[kNumReturned] = response.cursor?.firstBatch?.length;
82+
if (CursorResponse.is(response)) {
83+
this[kNumReturned] = response.batchSize;
84+
}
8285

8386
// TODO: NODE-2882
8487
return { server: findOperation.server, session, response };
@@ -113,8 +116,8 @@ export class FindCursor<TSchema = any> extends AbstractCursor<TSchema> {
113116

114117
const response = await super.getMore(batchSize, true);
115118
// TODO: wrap this in some logic to prevent it from happening if we don't need this support
116-
if (response) {
117-
this[kNumReturned] = this[kNumReturned] + response.batchLength;
119+
if (CursorResponse.is(response)) {
120+
this[kNumReturned] = this[kNumReturned] + response.batchSize;
118121
}
119122

120123
return response;

0 commit comments

Comments
 (0)