UNPKG

@foal/core

Version:

Full-featured Node.js framework, with no complexity

45 lines (44 loc) 1.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sendResponse = sendResponse; // std const stream_1 = require("stream"); // FoalTS const core_1 = require("../core"); /** * Convert a FoalTS response to an Express response. * * @export * @param {HttpResponse} response - FoalTS response. * @param {any} res - Express response used in middlewares. * @returns {void} */ function sendResponse(response, res, logger) { res.status(response.statusCode); res.set(response.getHeaders()); const cookies = response.getCookies(); for (const cookieName in cookies) { const options = cookies[cookieName].options; if (options.maxAge !== undefined) { // Convert seconds to milliseconds to make it work with Express. options.maxAge = options.maxAge * 1000; } res.cookie(cookieName, cookies[cookieName].value, options); } if ((0, core_1.isHttpResponseRedirect)(response) || (0, core_1.isHttpResponseMovedPermanently)(response)) { res.redirect(response.statusCode, response.path); return; } if (typeof response.body === 'number') { response.body = response.body.toString(); } if (response.stream === true) { (0, stream_1.pipeline)(response.body, res, (error) => { if (error) { logger.error(error.message, { error }); } }); return; } res.send(response.body); }