Skip to content

Commit d352aa0

Browse files
committed
fix processBatchInfo() when response has sub batches
1 parent 0ff2510 commit d352aa0

2 files changed

Lines changed: 22 additions & 5 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@boilingdata/node-boilingdata",
3-
"version": "0.0.18",
3+
"version": "0.0.19",
44
"description": "BoilingData client",
55
"main": "dist/cjs/index.js",
66
"types": "dist/cjs/index.d.ts",

src/boilingdata/boilingdata.ts

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,13 @@ export interface IBDQuery {
5050

5151
export interface ISocketInstance {
5252
lastActivity: number;
53-
queries: Map<string, { recievedBatches: Set<number> }>;
53+
queries: Map<
54+
string,
55+
{
56+
receivedBatches: Set<number>;
57+
receivedSubBatches: Map<number, Set<number>>;
58+
}
59+
>;
5460
send: (payload: IBDDataQuery) => void;
5561
query: (params: IBDQuery) => void;
5662
bumpActivity: () => void;
@@ -173,7 +179,8 @@ export class BoilingData {
173179
requestId,
174180
};
175181
this.socketInstance.queries.set(requestId, {
176-
recievedBatches: new Set(),
182+
receivedBatches: new Set(),
183+
receivedSubBatches: new Map(),
177184
});
178185
this.socketInstance.queryCallbacks.set(requestId, {
179186
onData: params.callbacks?.onData,
@@ -203,8 +210,18 @@ export class BoilingData {
203210
if (!message.requestId || !message.batchSerial || !message.totalBatches || message.batchSerial <= 0) return;
204211
const queryInfo = this.socketInstance.queries.get(message?.requestId);
205212
if (!queryInfo) return;
206-
queryInfo.recievedBatches.add(message.batchSerial);
207-
if (queryInfo.recievedBatches.size < message.totalBatches) return;
213+
queryInfo.receivedBatches.add(message.batchSerial);
214+
if (message.subBatchSerial && message.totalSubBatches) {
215+
if (!queryInfo.receivedSubBatches.has(message.batchSerial)) {
216+
queryInfo.receivedSubBatches.set(message.batchSerial, new Set());
217+
}
218+
const receivedSubBatches = queryInfo.receivedSubBatches.get(message.batchSerial);
219+
if (receivedSubBatches) {
220+
receivedSubBatches.add(message.subBatchSerial);
221+
if (receivedSubBatches.size < message.totalSubBatches) return;
222+
}
223+
}
224+
if (queryInfo.receivedBatches.size < message.totalBatches) return;
208225
this.execEventCallback({ eventType: EEvent.QUERY_FINISHED, requestId: message.requestId, payload: message });
209226
}
210227

0 commit comments

Comments
 (0)