From aefdf82cdc25c3564ff898355c7c9543cb0b4ec6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=ADn=20Bigio?= Date: Thu, 6 Aug 2015 11:33:46 -0700 Subject: [PATCH] [JSAppServer] Don't keep track of not found packages --- packager/react-packager/src/Server/index.js | 53 +++++++++++---------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/packager/react-packager/src/Server/index.js b/packager/react-packager/src/Server/index.js index a4ee53ef6..fdeffc65e 100644 --- a/packager/react-packager/src/Server/index.js +++ b/packager/react-packager/src/Server/index.js @@ -372,12 +372,36 @@ Server.prototype.processRequest = function(req, res, next) { Activity.endEvent(startReqEventId); } }, - function(error) { - handleError(res, error); - } + this._handleError.bind(this, res, optionsJson) ).done(); }; +Server.prototype._handleError = function(res, packageID, error) { + res.writeHead(error.status || 500, { + 'Content-Type': 'application/json; charset=UTF-8', + }); + + if (error.type === 'TransformError' || error.type === 'NotFoundError') { + error.errors = [{ + description: error.description, + filename: error.filename, + lineNumber: error.lineNumber, + }]; + res.end(JSON.stringify(error)); + + if (error.type === 'NotFoundError') { + delete this._packages[packageID]; + } + } else { + console.error(error.stack || error); + res.end(JSON.stringify({ + type: 'InternalError', + message: 'react-packager has encountered an internal error, ' + + 'please check your terminal error output for more details', + })); + } +}; + function getOptionsFromUrl(reqUrl) { // `true` to parse the query param as an object. var urlObj = url.parse(reqUrl, true); @@ -417,26 +441,3 @@ function getBoolOptionFromQuery(query, opt, defaultVal) { return query[opt] === 'true' || query[opt] === '1'; } - -function handleError(res, error) { - res.writeHead(error.status || 500, { - 'Content-Type': 'application/json; charset=UTF-8', - }); - - if (error.type === 'TransformError' || error.type === 'NotFoundError') { - error.errors = [{ - description: error.description, - filename: error.filename, - lineNumber: error.lineNumber, - }]; - console.error(error); - res.end(JSON.stringify(error)); - } else { - console.error(error.stack || error); - res.end(JSON.stringify({ - type: 'InternalError', - message: 'react-packager has encountered an internal error, ' + - 'please check your terminal error output for more details', - })); - } -}