From 90a400b782918034e12792e648c40ed2551b8409 Mon Sep 17 00:00:00 2001 From: Hornwitser Date: Sat, 26 Jun 2021 17:31:00 +0200 Subject: [PATCH] Handle mod not found in data export Handle the case of the mod file not being found from the mod version. This could happen if the naming scheme is weird or the mod is unpacked. --- packages/lib/factorio/export.js | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/packages/lib/factorio/export.js b/packages/lib/factorio/export.js index 34ee2130..2e71dd08 100644 --- a/packages/lib/factorio/export.js +++ b/packages/lib/factorio/export.js @@ -90,7 +90,16 @@ async function loadFile(server, modVersions, modPath) { } } - let zip = await loadZip(server, modVersions, mod); + let zip; + try { + zip = await loadZip(server, modVersions, mod); + } catch (err) { + if (err.code === "ENOENT") { + return null; + } + throw err; + } + let file = zip.file(filePath); if (!file) { return null; @@ -310,7 +319,15 @@ async function exportLocale(server, modVersions, modOrder, languageCode) { continue; } - let zip = await loadZip(server, modVersions, mod); + let zip; + try { + zip = await loadZip(server, modVersions, mod); + } catch (err) { + if (err.code === "ENOENT") { + continue; + } + throw err; + } for (let file of zip.file(new RegExp(`locale\\/${languageCode}\\/.*\\.cfg`))) { let content = await file.async("nodebuffer"); mergeLocale(ini.parse(content.toString("utf8")));