24 lines
761 B
JavaScript
24 lines
761 B
JavaScript
var checkDirective = require('./check-directive')
|
|
var dasherize = require('dasherize')
|
|
|
|
module.exports = function (options) {
|
|
if (!isObject(options)) {
|
|
throw new Error('csp must be called with an object argument. See the documentation.')
|
|
}
|
|
|
|
var directives = options.directives
|
|
|
|
var directivesExist = isObject(directives)
|
|
if (!directivesExist || Object.keys(directives).length === 0) {
|
|
throw new Error('csp must have at least one directive under the "directives" key. See the documentation.')
|
|
}
|
|
|
|
Object.keys(directives).forEach(function (directiveKey) {
|
|
checkDirective(dasherize(directiveKey), directives[directiveKey], options)
|
|
})
|
|
}
|
|
|
|
function isObject (value) {
|
|
return Object.prototype.toString.call(value) === '[object Object]'
|
|
}
|