Skip to content

Commit

Permalink
fix(buildPermissionsPolicyHeaders): set initial reducer value so we p…
Browse files Browse the repository at this point in the history
…ass curnch fns an actual object
  • Loading branch information
UncleClapton authored and trezy committed Nov 19, 2021
1 parent 787dfa3 commit bd9daf3
Showing 1 changed file with 21 additions and 15 deletions.
36 changes: 21 additions & 15 deletions lib/buildPermissionsPolicyHeaders.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
},
{}
)
}


Expand All @@ -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, '')),
},
]
}

0 comments on commit bd9daf3

Please sign in to comment.