From 798347c145c4b33b89b772d4b19f085d5b4af79e Mon Sep 17 00:00:00 2001 From: Paulius Grabauskas Date: Mon, 28 Jun 2021 11:54:22 +0300 Subject: [PATCH] Fix issue #1753 Reject promise when workbook reader is writing to temporary file stream and error occurs --- lib/stream/xlsx/workbook-reader.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/lib/stream/xlsx/workbook-reader.js b/lib/stream/xlsx/workbook-reader.js index 0a2a3c65c..0d3afd62a 100644 --- a/lib/stream/xlsx/workbook-reader.js +++ b/lib/stream/xlsx/workbook-reader.js @@ -119,6 +119,7 @@ class WorkbookReader extends EventEmitter { waitingWorkSheets.push({sheetNo, path, tempFileCleanupCallback}); const tempStream = fs.createWriteStream(path); + tempStream.on('error', reject); entry.pipe(tempStream); return tempStream.on('finish', () => { return resolve(); @@ -298,11 +299,8 @@ class WorkbookReader extends EventEmitter { options: this.options, }); - const matchingRel = (this.workbookRels || []).find( - rel => rel.Target === `worksheets/sheet${sheetNo}.xml` - ); - const matchingSheet = - matchingRel && (this.model.sheets || []).find(sheet => sheet.rId === matchingRel.Id); + const matchingRel = (this.workbookRels || []).find(rel => rel.Target === `worksheets/sheet${sheetNo}.xml`); + const matchingSheet = matchingRel && (this.model.sheets || []).find(sheet => sheet.rId === matchingRel.Id); if (matchingSheet) { worksheetReader.id = matchingSheet.id; worksheetReader.name = matchingSheet.name;