Catch parse exception
This commit is contained in:
@@ -183,38 +183,42 @@ module.exports.downloadFile = (url, destination, progressCallback, completeCallb
|
||||
responseType: 'stream',
|
||||
})
|
||||
.then(response => {
|
||||
const total = parseInt(response.headers['content-length'], 10);
|
||||
if (total === 0) {
|
||||
completeCallback(Error('No data available for download'));
|
||||
} else {
|
||||
const stream = fs.createWriteStream(destination);
|
||||
try {
|
||||
const total = parseInt(response.headers['content-length'], 10);
|
||||
if (total === 0) {
|
||||
completeCallback(Error('No data available for download'));
|
||||
} else {
|
||||
const stream = fs.createWriteStream(destination);
|
||||
|
||||
let downloaded = 0;
|
||||
response.data.on('data', (chunk) => {
|
||||
stream.write(Buffer.from(chunk));
|
||||
downloaded += chunk.length;
|
||||
if (progressCallback) {
|
||||
progressCallback((downloaded / total * 100.0).toFixed(2));
|
||||
}
|
||||
});
|
||||
|
||||
response.data.on('end', () => {
|
||||
stream.end(() => {
|
||||
if (downloaded === 0) {
|
||||
completeCallback(Error('Received 0 bytes'));
|
||||
} else if (downloaded !== total) {
|
||||
completeCallback(Error('Received incorrect number of bytes'));
|
||||
} else {
|
||||
completeCallback();
|
||||
let downloaded = 0;
|
||||
response.data.on('data', (chunk) => {
|
||||
stream.write(Buffer.from(chunk));
|
||||
downloaded += chunk.length;
|
||||
if (progressCallback) {
|
||||
progressCallback((downloaded / total * 100.0).toFixed(2));
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
response.data.on('error', error => {
|
||||
stream.end(() => {
|
||||
completeCallback(error);
|
||||
response.data.on('end', () => {
|
||||
stream.end(() => {
|
||||
if (downloaded === 0) {
|
||||
completeCallback(Error('Received 0 bytes'));
|
||||
} else if (downloaded !== total) {
|
||||
completeCallback(Error('Received incorrect number of bytes'));
|
||||
} else {
|
||||
completeCallback();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
response.data.on('error', error => {
|
||||
stream.end(() => {
|
||||
completeCallback(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
} catch (error) {
|
||||
completeCallback(error);
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
|
||||
Reference in New Issue
Block a user