mirror of
https://github.com/MercuryWorkshop/scramjet.git
synced 2025-05-14 06:50:01 -04:00
clean up config and fix up header rewriting
This commit is contained in:
parent
0456df7f48
commit
70d888982a
4 changed files with 24 additions and 32 deletions
|
@ -22,23 +22,22 @@ const cspHeaders = [
|
|||
|
||||
const urlHeaders = [
|
||||
"location",
|
||||
"Location",
|
||||
"content-location",
|
||||
"referer"
|
||||
];
|
||||
|
||||
export function rewriteHeaders(headers: BareHeaders, origin?: string) {
|
||||
export function rewriteHeaders(rawHeaders: BareHeaders, origin?: string) {
|
||||
const headers = {};
|
||||
for (const key in rawHeaders) {
|
||||
headers[key.toLowerCase()] = rawHeaders[key];
|
||||
}
|
||||
cspHeaders.forEach((header) => {
|
||||
delete headers[header];
|
||||
delete headers[header.toLowerCase()];
|
||||
});
|
||||
|
||||
urlHeaders.forEach((header) => {
|
||||
if (headers[header]) {
|
||||
if (headers[header])
|
||||
headers[header] = encodeUrl(headers[header] as string, origin);
|
||||
} else if (headers[header.toLowerCase()]) {
|
||||
headers[header.toLowerCase()] = encodeUrl(headers[header.toLowerCase()] as string, origin);
|
||||
}
|
||||
})
|
||||
|
||||
return headers;
|
||||
|
|
|
@ -5,7 +5,6 @@ declare global {
|
|||
__scramjet$config: {
|
||||
prefix: string;
|
||||
codec: Codec
|
||||
scramjet: {
|
||||
config: string;
|
||||
bundle: string;
|
||||
worker: string;
|
||||
|
@ -13,17 +12,14 @@ declare global {
|
|||
codecs: string;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
self.__scramjet$config = {
|
||||
prefix: "/scramjet/",
|
||||
codec: self.__scramjet$codecs.plain,
|
||||
scramjet: {
|
||||
config: "/scramjet.config.js",
|
||||
bundle: "/scramjet.bundle.js",
|
||||
worker: "/scramjet.worker.js",
|
||||
client: "/scramjet.client.js",
|
||||
codecs: "/scramjet.codecs.js"
|
||||
}
|
||||
}
|
|
@ -1,6 +1,3 @@
|
|||
importScripts("/scramjet.codecs.js");
|
||||
importScripts("/scramjet.config.js");
|
||||
importScripts("/scramjet.bundle.js");
|
||||
import { BareClient } from "@mercuryworkshop/bare-mux";
|
||||
import { BareResponseFetch } from "@mercuryworkshop/bare-mux"
|
||||
|
||||
|
@ -26,7 +23,6 @@ self.ScramjetServiceWorker = class ScramjetServiceWorker {
|
|||
try {
|
||||
const url = new URL(self.__scramjet$bundle.rewriters.url.decodeUrl(request.url));
|
||||
|
||||
// implement header rewriting later
|
||||
const response: BareResponseFetch = await this.client.fetch(url, {
|
||||
method: request.method,
|
||||
body: request.body,
|
||||
|
@ -37,7 +33,7 @@ self.ScramjetServiceWorker = class ScramjetServiceWorker {
|
|||
redirect: request.redirect,
|
||||
});
|
||||
|
||||
|
||||
console.log(response)
|
||||
let responseBody;
|
||||
const responseHeaders = self.__scramjet$bundle.rewriters.rewriteHeaders(response.rawHeaders, origin);
|
||||
if (response.body) {
|
||||
|
@ -62,8 +58,8 @@ self.ScramjetServiceWorker = class ScramjetServiceWorker {
|
|||
}
|
||||
}
|
||||
|
||||
if (responseHeaders.accept === "text/event-stream") {
|
||||
responseHeaders.headers["content-type"] = "text/event-stream";
|
||||
if (responseHeaders["accept"] === "text/event-stream") {
|
||||
responseHeaders["content-type"] = "text/event-stream";
|
||||
}
|
||||
if (crossOriginIsolated) {
|
||||
responseHeaders["Cross-Origin-Embedder-Policy"] = "require-corp";
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
importScripts("./scramjet.codecs.js");
|
||||
importScripts("./scramjet.config.js");
|
||||
importScripts("./scramjet.worker.js");
|
||||
importScripts("./bare-client.js")
|
||||
importScripts("scramjet.codecs.js");
|
||||
importScripts("scramjet.config.js");
|
||||
importScripts( __scramjet$config.bundle || "scramjet.bundle.js")
|
||||
importScripts( __scramjet$config.worker || "scramjet.worker.js");
|
||||
importScripts("bare-client.js")
|
||||
|
||||
const scramjet = new ScramjetServiceWorker();
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue