From a62de758dc6c222941dd20404d86b898fde2478a Mon Sep 17 00:00:00 2001 From: Sean Lilley Date: Wed, 15 Sep 2021 11:57:28 -0400 Subject: [PATCH] Fix unhandled error when obj or mtl is missing --- lib/readLines.js | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/lib/readLines.js b/lib/readLines.js index 0977b1c..106e9be 100644 --- a/lib/readLines.js +++ b/lib/readLines.js @@ -2,6 +2,7 @@ const fsExtra = require("fs-extra"); const Promise = require("bluebird"); const readline = require("readline"); +const events = require("events"); module.exports = readLines; @@ -15,23 +16,25 @@ module.exports = readLines; * @private */ function readLines(path, callback) { - return new Promise(function (resolve, reject) { - const stream = fsExtra.createReadStream(path); - stream.on("error", reject); - stream.on("end", resolve); + const stream = fsExtra.createReadStream(path); + return events.once(stream, "open").then(function () { + return new Promise(function (resolve, reject) { + stream.on("error", reject); + stream.on("end", resolve); - const lineReader = readline.createInterface({ - input: stream, + const lineReader = readline.createInterface({ + input: stream, + }); + + const callbackWrapper = function (line) { + try { + callback(line); + } catch (error) { + reject(error); + } + }; + + lineReader.on("line", callbackWrapper); }); - - const callbackWrapper = function (line) { - try { - callback(line); - } catch (error) { - reject(error); - } - }; - - lineReader.on("line", callbackWrapper); }); }