Skip to content

Commit a90cc95

Browse files
committed
feat: add riri's proxy
1 parent 8d886c5 commit a90cc95

File tree

1 file changed

+53
-1
lines changed

1 file changed

+53
-1
lines changed

util.ts

+53-1
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,59 @@ export const proxy = (
228228
}
229229

230230
const _headers = new Headers();
231-
_headers.set("X-Set-Headers", JSON.stringify(Object.fromEntries(headers.entries())));
231+
_headers.set("X-Set-Headers", JSON.stringify(Object.fromEntries(headers)));
232+
233+
init.headers = _headers;
234+
235+
if (input instanceof Request) {
236+
// @ts-ignore
237+
input.duplex = "half";
238+
}
239+
240+
const request = new Request(url, input instanceof Request ? input : undefined);
241+
return [request, init];
242+
};
243+
244+
export const proxy2 = (
245+
input: RequestInfo | URL,
246+
init: RequestInit = {},
247+
): [Request, RequestInit] => {
248+
let url: URL | string;
249+
if (typeof input === "string") {
250+
url = new URL(input);
251+
} else if (input instanceof Request) {
252+
url = new URL(input.url);
253+
} else if (input instanceof URL) {
254+
url = input;
255+
} else {
256+
throw "Unsupported input type";
257+
}
258+
url = `https://cors-proxy.spicetify.app/${url}`;
259+
260+
let headers: Headers;
261+
if (init.headers) {
262+
headers = new Headers(init.headers);
263+
} else if (input instanceof Request) {
264+
headers = input.headers;
265+
} else {
266+
headers = new Headers();
267+
}
268+
269+
const _headers = new Headers();
270+
for (
271+
const [kp, k] of [
272+
["X-Cookie", "Cookie"],
273+
["X-Referer", "Referer"],
274+
["X-Origin", "Origin"],
275+
["X-User-Agent", "User-Agent"],
276+
["X-X-Real-Ip", "X-Real-Ip"],
277+
]
278+
) {
279+
const v = headers.get(k);
280+
if (v) {
281+
_headers.set(kp, v);
282+
}
283+
}
232284

233285
init.headers = _headers;
234286

0 commit comments

Comments
 (0)