diff --git a/lib/request/end.js b/lib/request/end.js index b83178a45..eea109d68 100644 --- a/lib/request/end.js +++ b/lib/request/end.js @@ -2,6 +2,7 @@ var map = require('../common/array/map') var promise = require('../common/promise') +var assign = require('../common/assign') /** @@ -41,21 +42,20 @@ module.exports = function (context) { return Promise.all(map(includeTypes, function (includeType) { // This is useful for output hooks to know which type that the current // record belongs to. It is temporary and gets deleted later. - request.includeType = includeType + var ctx = assign({}, context) + ctx.request = assign({}, request) + ctx.request.includeType = includeType return Promise.all(map(include[includeType], function (record) { return Promise.resolve( typeof hooks[includeType][1] === 'function' ? - hooks[includeType][1](context, record) : record) + hooks[includeType][1](ctx, record) : record) })) })) .then(function (types) { var i, j, k, l - // Don't need this anymore. - delete request.includeType - // Assign results of output hooks on includes. for (i = 0, j = types.length; i < j; i++) for (k = 0, l = types[i].length; k < l; k++)