From cc9b4e26b59ccfbc04a22986578e4af00028ade7 Mon Sep 17 00:00:00 2001 From: Girish Ramakrishnan Date: Fri, 15 May 2020 15:24:12 -0700 Subject: [PATCH] use done event to signal write success (just like in extract) --- src/backups.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/backups.js b/src/backups.js index 1f114e7bf..feb2c6deb 100644 --- a/src/backups.js +++ b/src/backups.js @@ -394,6 +394,12 @@ function createWriteStream(destFile, encryption) { ps.emit('error', new BoxError(BoxError.FS_ERROR, `Write error ${destFile}: ${error.message}`)); }); + stream.on('finish', function () { + debug('createWriteStream: done.'); + // we use a separate event because ps is a through2 stream which emits 'finish' event indicating end of inStream and not write + ps.emit('done'); + }); + if (encryption) { let decrypt = new DecryptStream(encryption); decrypt.on('error', function (error) { @@ -749,7 +755,7 @@ function downloadDir(backupConfig, backupFilePath, dataLayout, progressCallback, progressCallback({ message: `Downloading ${entry.fullPath} to ${destFilePath}` }); - sourceStream.pipe(destStream, { end: true }).on('finish', closeAndRetry); + sourceStream.pipe(destStream, { end: true }).on('done', closeAndRetry); }); }, done); });