tailorx
Version:
Tailor assembles a web page from multiple fragments
24 lines (20 loc) • 873 B
JavaScript
;
/**
* @param {http.ServerResponse} response - fragment response
* @param {Object} context - contextual info about request
* @param {http.IncomingMessage} context.request - incoming request from browser
* @param {Object} context.fragmentAttributes - fragment attributes map
* @param {String} context.fragmentUrl - URL that was requested on fragment
*/
module.exports = (response, context) => {
const isError500 = response.statusCode >= 500;
const isNonPrimaryAndNon200 =
(response.statusCode < 200 || response.statusCode >= 300) &&
!context.fragmentAttributes.primary;
if (isError500 || isNonPrimaryAndNon200) {
throw new Error(
`Request fragment error. statusCode: ${response.statusCode}; statusMessage: ${response.statusMessage}; url: ${context.fragmentUrl};`
);
}
return response;
};