UNPKG

901 BJavaScriptView Raw
1'use strict';
2const ACCEPT_HEADERS = ['accept-language', 'referer', 'user-agent'];
3/**
4 * Filter the request headers that are passed to fragment request.
5 * @callback filterHeaders
6 *
7 * @param {Object} attributes - Attributes object of the fragment node
8 * @param {string} attributes.public - Denotes the public fragment.
9 * @param {Object} request - HTTP Request object
10 * @param {Object} request.headers - request header object
11 * @returns {Object} New filtered header object
12 */
13module.exports = (attributes, request) => {
14 const { public: publicFragment } = attributes;
15 const { headers = {} } = request;
16 // Headers are not forwarded to public fragment for security reasons
17 return publicFragment
18 ? {}
19 : ACCEPT_HEADERS.reduce((newHeaders, key) => {
20 headers[key] && (newHeaders[key] = headers[key]);
21 return newHeaders;
22 }, {});
23};