From 89314fac035a393a1b0499c5657f1227e9c78522 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 28 Jul 2024 23:29:38 +0300 Subject: [PATCH] server: Report ZIP import errors properly --- package-lock.json | 4 ++-- src/services/import/zip.ts | 10 ++++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 895f87ab2..66f238b2e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "trilium", - "version": "0.90.1-beta", + "version": "0.90.2-beta", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "trilium", - "version": "0.90.1-beta", + "version": "0.90.2-beta", "license": "AGPL-3.0-only", "dependencies": { "@braintree/sanitize-url": "^7.1.0", diff --git a/src/services/import/zip.ts b/src/services/import/zip.ts index 58aa8e994..29fa35699 100644 --- a/src/services/import/zip.ts +++ b/src/services/import/zip.ts @@ -629,11 +629,17 @@ function readContent(zipfile: yauzl.ZipFile, entry: yauzl.Entry): Promise void) { return new Promise((res, rej) => { yauzl.fromBuffer(buffer, {lazyEntries: true, validateEntrySizes: false}, function(err, zipfile) { - if (err) throw err; + if (err) rej(err); if (!zipfile) throw new Error("Unable to read zip file."); zipfile.readEntry(); - zipfile.on("entry", entry => processEntryCallback(zipfile, entry)); + zipfile.on("entry", async entry => { + try { + await processEntryCallback(zipfile, entry); + } catch (e) { + rej(e); + } + }); zipfile.on("end", res); }); });