Files
trezor-suite/packages/suite-web/utils/csp.ts
Jiří Čermák b134f0a265 feat: add security headers for web build preview
- Define security headers for local testing of production web build.
- Use Vite to run the preview local server.
2026-01-30 10:28:57 +01:00

26 lines
746 B
TypeScript

import { ContentSecurityPolicyRules } from '../types/securityHeaders';
const quotedDirectivesValues = new Set(['self', 'none', 'unsafe-inline', 'unsafe-eval']);
function quoteDirectiveValue(value: string) {
return quotedDirectivesValues.has(value) ? `'${value}'` : value;
}
export function formatContentSecurityPolicy<Rules extends Partial<ContentSecurityPolicyRules>>(
rules: Rules,
) {
return Object.entries(rules)
.map(([key, value]) => {
if (value === true) {
return key;
}
if (Array.isArray(value)) {
return `${key} ${value.map(quoteDirectiveValue).join(' ')}`;
}
return `${key} ${value}`;
})
.join('; ');
}