Merge pull request #4522 from Nriver/master

fix decoding issue for request data chunks
This commit is contained in:
zadam 2023-12-27 22:58:27 +01:00 committed by GitHub
commit a3783131a2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -63,10 +63,15 @@ function exec(opts) {
} }
let responseStr = ''; let responseStr = '';
let chunks = [];
response.on('data', chunk => responseStr += chunk); response.on('data', chunk => chunks.push(chunk));
response.on('end', () => { response.on('end', () => {
// use Buffer instead of string concatenation to avoid implicit decoding for each chunk
// decode the entire data chunks explicitly as utf-8
responseStr = Buffer.concat(chunks).toString('utf-8')
if ([200, 201, 204].includes(response.statusCode)) { if ([200, 201, 204].includes(response.statusCode)) {
try { try {
const jsonObj = responseStr.trim() ? JSON.parse(responseStr) : null; const jsonObj = responseStr.trim() ? JSON.parse(responseStr) : null;