Skip to content

Commit 5b73cbe

Browse files
authored
chore(rsc): fix csp example for Vite server ping SharedWorker (#704)
1 parent 3114e88 commit 5b73cbe

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

packages/plugin-rsc/examples/basic/src/server.tsx

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,17 @@ export default async function handler(request: Request): Promise<Response> {
2222
nonce,
2323
})
2424
if (nonce && response.headers.get('content-type')?.includes('text/html')) {
25-
response.headers.set(
26-
'content-security-policy',
27-
`default-src 'self'; ` +
28-
// `unsafe-eval` is required during dev since React uses eval for findSourceMapURL feature
29-
`script-src 'self' 'nonce-${nonce}' ${
30-
import.meta.env.DEV ? `'unsafe-eval'` : ``
31-
} ; ` +
32-
`style-src 'self' 'nonce-${nonce}'; `,
33-
)
25+
const cspValue = [
26+
`default-src 'self';`,
27+
// `unsafe-eval` is required during dev since React uses eval for findSourceMapURL feature
28+
`script-src 'self' 'nonce-${nonce}' ${import.meta.env.DEV ? `'unsafe-eval'` : ``};`,
29+
`style-src 'self' 'nonce-${nonce}';`,
30+
// allow blob: worker for Vite server ping shared worker
31+
import.meta.hot && `worker-src 'self' blob:;`,
32+
]
33+
.filter(Boolean)
34+
.join('')
35+
response.headers.set('content-security-policy', cspValue)
3436
}
3537
return response
3638
}

0 commit comments

Comments
 (0)