mirror of
https://github.com/MercuryWorkshop/scramjet.git
synced 2025-05-15 15:30:00 -04:00
set on the host arg
This commit is contained in:
parent
c4e90a50ab
commit
51abf6577f
1 changed files with 140 additions and 130 deletions
|
@ -24,8 +24,7 @@ self.ScramjetServiceWorker = class ScramjetServiceWorker {
|
|||
|
||||
async fetch({ request }: FetchEvent) {
|
||||
const urlParam = new URLSearchParams(new URL(request.url).search);
|
||||
const { encodeUrl, decodeUrl } = self.$scramjet.shared.url;
|
||||
const { rewriteHeaders, rewriteHtml, rewriteJs, rewriteCss, rewriteWorkers } = self.$scramjet.shared.rewrite;
|
||||
const { encodeUrl, decodeUrl, rewriteHeaders, rewriteHtml, rewriteJs, rewriteCss, rewriteWorkers } = self.$scramjet.shared;
|
||||
|
||||
if (urlParam.has("url")) {
|
||||
return Response.redirect(encodeUrl(urlParam.get("url"), new URL(urlParam.get("url"))))
|
||||
|
@ -34,7 +33,7 @@ self.ScramjetServiceWorker = class ScramjetServiceWorker {
|
|||
try {
|
||||
const url = new URL(decodeUrl(request.url));
|
||||
|
||||
const cookieStore = new IDBMap(url.origin, { durability: "relaxed", prefix: "Cookies" });
|
||||
const cookieStore = new IDBMap(url.host, { durability: "relaxed", prefix: "Cookies" });
|
||||
|
||||
const response: BareResponseFetch = await this.client.fetch(url, {
|
||||
method: request.method,
|
||||
|
@ -53,9 +52,21 @@ self.ScramjetServiceWorker = class ScramjetServiceWorker {
|
|||
|
||||
for (const cookie of (responseHeaders["set-cookie"] || []) as string[]) {
|
||||
let cookieParsed = cookie.split(";").map(x => x.trim().split("="));
|
||||
|
||||
let [key, value] = cookieParsed.shift();
|
||||
value = value.replace("\"", "");
|
||||
|
||||
const hostArg = cookieParsed.find(x => x[0].toLowerCase() === "domain");
|
||||
cookieParsed = cookieParsed.filter(x => x[0].toLowerCase() !== "domain");
|
||||
let host = hostArg ? hostArg[1] : undefined;
|
||||
|
||||
if (host && host !== url.host) {
|
||||
if (host.startsWith(".")) host = host.slice(1);
|
||||
const cookieStore = new IDBMap(host, { durability: "relaxed", prefix: "Cookies" });
|
||||
cookieStore.set(key, { value: value, args: cookieParsed });
|
||||
} else {
|
||||
cookieStore.set(key, { value: value, args: cookieParsed });
|
||||
}
|
||||
}
|
||||
|
||||
if (response.body) {
|
||||
|
@ -177,8 +188,7 @@ function errorTemplate(
|
|||
<button id="reload">Reload</button>
|
||||
<hr />
|
||||
<p><i>Scramjet v<span id="version"></span></i></p>
|
||||
<script src="${
|
||||
"data:application/javascript," + encodeURIComponent(script)
|
||||
<script src="${"data:application/javascript," + encodeURIComponent(script)
|
||||
}"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue