Skip to content

Commit 8752c33

Browse files
fix issues
1 parent 668ce91 commit 8752c33

File tree

1 file changed

+24
-1
lines changed

1 file changed

+24
-1
lines changed

packages/website-v2/src/routes/[_]rpc.ts

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ async function proxyRpcRequest(request: Request) {
4848

4949
const responseHeaders = new Headers(response.headers);
5050
for (const [key, value] of corsHeaders.entries()) {
51+
if (key.toLowerCase() === "vary") {
52+
mergeVaryHeader(responseHeaders, value);
53+
continue;
54+
}
5155
responseHeaders.set(key, value);
5256
}
5357

@@ -62,7 +66,7 @@ function buildCorsHeaders(request: Request) {
6266
const headers = new Headers();
6367
const origin = request.headers.get("origin");
6468
if (!origin) {
65-
return null;
69+
return headers;
6670
}
6771

6872
if (!isAllowedOrigin(origin)) {
@@ -80,6 +84,25 @@ function buildCorsHeaders(request: Request) {
8084
return headers;
8185
}
8286

87+
function mergeVaryHeader(headers: Headers, value: string) {
88+
const existing = headers.get("vary");
89+
if (!existing) {
90+
headers.set("vary", value);
91+
return;
92+
}
93+
94+
const existingValues = existing
95+
.split(",")
96+
.map((entry) => entry.trim().toLowerCase())
97+
.filter(Boolean);
98+
const additions = value
99+
.split(",")
100+
.map((entry) => entry.trim().toLowerCase())
101+
.filter(Boolean);
102+
const merged = Array.from(new Set([...existingValues, ...additions]));
103+
headers.set("vary", merged.join(", "));
104+
}
105+
83106
function isAllowedOrigin(origin: string) {
84107
let hostname = "";
85108
try {

0 commit comments

Comments
 (0)