UNPKG

edgerender

Version:
35 lines 1.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.addCspHeader = void 0; const utils_1 = require("./utils"); function addCspHeader(headers, csp_rules, sentry) { if (!csp_rules.report_uri && sentry) { const { key, server, app } = sentry; csp_rules.report_uri = `https://${server}.ingest.sentry.io/api/${app}/security/?sentry_key=${key}`; } headers['content-security-policy'] = Object.entries(csp_rules) .map(directiveAsString) .filter(v => v) .join(' '); } exports.addCspHeader = addCspHeader; function directiveAsString([k, v]) { const name = k.replace(/_/g, '-'); if (typeof v == 'string') { return `${name} ${v};`; } else if (typeof v == 'boolean') { if (v) { return `${name};`; } } else { if (!Array.isArray(v)) { throw new TypeError(`CSP ${name}: Invalid directive value type ${utils_1.smart_typeof(v)}`); } else if (v.length > 0) { return `${name} ${v.join(' ')};`; } } } //# sourceMappingURL=csp.js.map