From eff8a8448247d702adc64c580b149a39b11d1ffc Mon Sep 17 00:00:00 2001 From: akiradev Date: Thu, 9 Jan 2025 13:44:54 +0000 Subject: [PATCH] Handle chunked response bodies --- src/clientFactory.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/clientFactory.ts b/src/clientFactory.ts index 3186963..ba4dfdd 100644 --- a/src/clientFactory.ts +++ b/src/clientFactory.ts @@ -496,12 +496,14 @@ let handleResponseStream = async ({ body, callback, initialValue }: { let buffer = Buffer.alloc(0); return new Promise((resolve, reject) => { - let accumulator = initialValue; - if (body !== null) { - body.getReader().read().then(({ done, value }) => { + let accumulator = initialValue; + + const reader = body.getReader(); + + reader.read().then(function processChunk({ done, value }): any { if (done) { - resolve(accumulator); + return resolve(accumulator); } buffer = Buffer.concat([buffer, value]); @@ -520,6 +522,8 @@ let handleResponseStream = async ({ body, callback, initialValue }: { return; } }); + + return reader.read().then(processChunk); }).catch(e => { reject(e); })