diff --git a/load-image.js b/load-image.js index 8ff84fb1..58c471f5 100644 --- a/load-image.js +++ b/load-image.js @@ -60,16 +60,18 @@ function makeRequest(url, resolve, reject, redirectCount, requestOptions) { // lazy load the lib const lib = isHttps ? (!https ? (https = require('https')) : https) : !http ? (http = require('http')) : http - lib.get(url, requestOptions || {}, (res) => { - const shouldRedirect = REDIRECT_STATUSES.has(res.statusCode) && typeof res.headers.location === 'string' - if (shouldRedirect && redirectCount > 0) - return makeRequest(new URL(res.headers.location), resolve, reject, redirectCount - 1, requestOptions) - if (typeof res.statusCode === 'number' && (res.statusCode < 200 || res.statusCode >= 300)) { - return reject(new Error(`remote source rejected with status code ${res.statusCode}`)) - } + lib + .get(url, requestOptions || {}, (res) => { + const shouldRedirect = REDIRECT_STATUSES.has(res.statusCode) && typeof res.headers.location === 'string' + if (shouldRedirect && redirectCount > 0) + return makeRequest(new URL(res.headers.location), resolve, reject, redirectCount - 1, requestOptions) + if (typeof res.statusCode === 'number' && (res.statusCode < 200 || res.statusCode >= 300)) { + return reject(new Error(`remote source rejected with status code ${res.statusCode}`)) + } - consumeStream(res).then(resolve, reject) - }) + consumeStream(res).then(resolve, reject) + }) + .on('error', reject) } // use stream/consumers in the future?