diff --git a/lib/tempFileHandler.js b/lib/tempFileHandler.js index 2eea3b8..bfaca8b 100644 --- a/lib/tempFileHandler.js +++ b/lib/tempFileHandler.js @@ -18,23 +18,16 @@ module.exports = (options, fieldname, filename) => { const hash = crypto.createHash('md5'); let fileSize = 0; let completed = false; - - let writeStream = false; - let writePromise = Promise.resolve(); - const createWriteStream = () => { - debugLog(options, `Opening write stream for ${fieldname}->${filename}...`); - writeStream = fs.createWriteStream(tempFilePath); - writePromise = new Promise((resolve, reject) => { - writeStream.on('finish', () => { - resolve(); - }); - writeStream.on('error', (err) => { - debugLog(options, `Error write temp file: ${err}`); - reject(err); - }); + debugLog(options, `Opening write stream for ${fieldname}->${filename}...`); + const writeStream = fs.createWriteStream(tempFilePath); + const writePromise = new Promise((resolve, reject) => { + writeStream.on('finish', () => resolve()); + writeStream.on('error', (err) => { + debugLog(options, `Error write temp file: ${err}`); + reject(err); }); - }; + }); return { dataHandler: (data) => { @@ -42,7 +35,6 @@ module.exports = (options, fieldname, filename) => { debugLog(options, `Error: got ${fieldname}->${filename} data chunk for completed upload!`); return; } - if (writeStream === false) createWriteStream(); writeStream.write(data); hash.update(data); fileSize += data.length; @@ -60,14 +52,12 @@ module.exports = (options, fieldname, filename) => { }, cleanup: () => { completed = true; - if (writeStream !== false) { - debugLog(options, `Cleaning up temporary file ${tempFilePath}...`); - writeStream.end(); - deleteFile(tempFilePath, err => (err - ? debugLog(options, `Cleaning up temporary file ${tempFilePath} failed: ${err}`) - : debugLog(options, `Cleaning up temporary file ${tempFilePath} done.`) - )); - } + debugLog(options, `Cleaning up temporary file ${tempFilePath}...`); + writeStream.end(); + deleteFile(tempFilePath, err => (err + ? debugLog(options, `Cleaning up temporary file ${tempFilePath} failed: ${err}`) + : debugLog(options, `Cleaning up temporary file ${tempFilePath} done.`) + )); }, getWritePromise: () => writePromise };