Skip to content

Commit

Permalink
Log stream events [improve]
Browse files Browse the repository at this point in the history
  • Loading branch information
overlookmotel committed Oct 8, 2020
1 parent ae57aee commit 8beba79
Showing 1 changed file with 15 additions and 2 deletions.
17 changes: 15 additions & 2 deletions lib/uploadClass.js
Original file line number Diff line number Diff line change
Expand Up @@ -172,37 +172,47 @@ module.exports = class Upload {
inputStreamDestroyed = false,
streamDestroyed = false;
function destroyStreams(err) {
log('Destroying streams');
if (!inputStreamErrored && !inputStreamDestroyed) {
log('Destroying input stream');
inputStreamDestroyed = true;
inputStream.destroy(err);
}
if (!streamErrored && !streamDestroyed) {
log('Destroying transform stream');
streamDestroyed = true;
stream.destroy(err);
}
}

inputStream.once('error', (err) => {
log('Input stream error', {err});
inputStreamErrored = true;
destroyStreams(err);
});
inputStream.once('end', () => {
log('Input stream ended');
});

inputStream.pipe(stream);

// Upload chunk
const streamPromise = new Promise((resolve, reject) => {
stream.once('error', (err) => {
log('Transform stream error', {err});
streamErrored = true;
destroyStreams(err);
reject(err);
});
stream.once('end', () => {
log('Transform stream ended');
resolve();
});
});

const inputClosePromise = new Promise(
resolve => inputStream.once('close', () => {
log('Input stream closed');
resolve();
})
);
Expand All @@ -220,8 +230,10 @@ module.exports = class Upload {
}

// If did not end normally, check where got up to
if (!endedNormally) {
log('Checking position');
if (endedNormally) {
log('Chunk completed');
} else {
log('Chunk did not complete - checking position');

// TODO Implement retry

Expand All @@ -235,6 +247,7 @@ module.exports = class Upload {
progress(this.position, size);

// Wait for input stream to close
log('Waiting for input stream to close');
await inputClosePromise;

// Return fileId (will be null if upload not complete)
Expand Down

0 comments on commit 8beba79

Please sign in to comment.