From 742d3435a3e6db58f466176736dbe2104798f003 Mon Sep 17 00:00:00 2001 From: gardenapple Date: Tue, 14 Jul 2020 17:52:01 +0300 Subject: [PATCH] Error handling for invalid URLs --- index.js | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/index.js b/index.js index cbb507a..bef2ba1 100644 --- a/index.js +++ b/index.js @@ -146,7 +146,6 @@ delete args['--']; const outputArg = args['output']; const documentURL = args["url"] || inputURL; -console.error(`Document URL: ${documentURL}`); const Properties = { @@ -187,21 +186,25 @@ if (inputIsFromStdin) { console.error("Retrieving..."); let promiseGetHTML; if (inputURL) { - promiseGetHTML = JSDOM.fromURL(inputURL); + promiseGetHTML = JSDOM.fromURL(inputURL).catch(error => { + if (error instanceof TypeError) { + console.error(`Invalid URL: ${inputURL}`); + setErrored(ExitCodes.dataError); + } + + return Promise.reject(); + }); } else if (inputFile) { promiseGetHTML = JSDOM.fromFile(inputFile, { url: documentURL }); } - promiseGetHTML.then(onLoadDOM) - .catch(onLoadDOMError); + promiseGetHTML.then(onLoadDOM, onLoadDOMError) } function onLoadDOM(dom) { const document = dom.window.document - console.log(`Base URI: ${document.baseURI}`); - console.log(`Document URI: ${document.documentURI}`); if (!args["quiet"]) console.error("Parsing..."); let reader = new Readability(document); @@ -245,6 +248,10 @@ function onLoadDOM(dom) { } function onLoadDOMError(error) { + //resolved earlier + if (!error) + return; + if (error.code == "ENOENT") { console.error(error.message); setErrored(ExitCodes.noInput);