"use strict"; /** * Middleware to cache responses. * * @module */ var _ = require("lodash"); module.exports = function () { var res = this.res; var resHead = res.writeHead; var resHeader = res.setHeader; res.headers = res.headers || {}; res.writeHead = function (statusCode, statusMsg, headers) { if (_.isPlainObject(statusMsg) && !headers) { headers = statusMsg; statusMsg = undefined; }; if (statusCode) { res.statusCode = res.statusCode || statusCode; }; if (statusMsg) { res.statusMessage = res.statusMessage || statusMsg; }; if (_.isPlainObject(headers)) { _.assign(res.headers, headers); }; return resHead.apply(this, arguments); }; res.setHeader = function(name, value) { res.headers[name] = value; return resHeader.apply(this, arguments); }; };