diff --git a/lib/buildPermissionsPolicyHeaders.js b/lib/buildPermissionsPolicyHeaders.js index e87b348..8cca9fc 100644 --- a/lib/buildPermissionsPolicyHeaders.js +++ b/lib/buildPermissionsPolicyHeaders.js @@ -4,14 +4,17 @@ const crunchPermissionsPolicyHeader = require('./crunchPermissionsPolicyHeader.j const directives = require('./PermissionsPolicy/index.js') -function reduceDirectives (policy, defaultValue) { - return (accumulator, directive) => { - if (policy[directive] !== false) { - accumulator[directive] = policy[directive] || defaultValue - } - - return accumulator - } +function reduceDirectives (supportedDirectives, permissionsPolicy, defaultValue) { + return supportedDirectives.reduce( + (accumulator, directive) => { + if (permissionsPolicy[directive] !== false) { + accumulator[directive] = permissionsPolicy[directive] || defaultValue + } + + return accumulator + }, + {} + ) } @@ -25,19 +28,22 @@ module.exports = function buildPermissionsPolicyHeaders(options = {}) { return [] } - const supportedDirectives = Array.from(new Set(permissionsPolicyDirectiveSupport - .map(directiveSet => directives[directiveSet]) - .flat())) - + const supportedDirectives = Array.from( + new Set( + permissionsPolicyDirectiveSupport.map( + directiveSet => directives[directiveSet] + ).flat() + ) + ) + return [ { key: 'Feature-Policy', - value: crunchFeaturePolicyHeader(supportedDirectives.reduce(reduceDirectives(permissionsPolicy, "'none'"))), + value: crunchFeaturePolicyHeader(reduceDirectives(supportedDirectives, permissionsPolicy, "'none'")) }, - { key: 'Permissions-Policy', - value: crunchPermissionsPolicyHeader(supportedDirectives.reduce(reduceDirectives(permissionsPolicy, ''))), + value: crunchPermissionsPolicyHeader(reduceDirectives(supportedDirectives, permissionsPolicy, '')), }, ] }