(conversationId: string, chunk: Chunk)
| 360 | } |
| 361 | |
| 362 | function queueChunk(conversationId: string, chunk: Chunk): void { |
| 363 | let pending = pendingConversationChunks.get(conversationId) |
| 364 | if (!pending) { |
| 365 | pending = { chunks: [], newChunkCount: 0 } |
| 366 | pendingConversationChunks.set(conversationId, pending) |
| 367 | } |
| 368 | |
| 369 | const lastPending = pending.chunks[pending.chunks.length - 1] |
| 370 | if ( |
| 371 | lastPending && |
| 372 | lastPending.type === chunk.type && |
| 373 | isMergeableChunkType(chunk.type) && |
| 374 | lastPending.messageId === chunk.messageId |
| 375 | ) { |
| 376 | lastPending.content = chunk.content || lastPending.content |
| 377 | lastPending.delta = chunk.delta |
| 378 | lastPending.chunkCount += chunk.chunkCount |
| 379 | } else { |
| 380 | pending.chunks.push(chunk) |
| 381 | } |
| 382 | pending.newChunkCount += chunk.chunkCount |
| 383 | scheduleBatchFlush() |
| 384 | } |
| 385 | |
| 386 | function queueMessageChunk( |
| 387 | conversationId: string, |
no test coverage detected