fix workers

This commit is contained in:
velzie 2024-08-31 11:28:01 -04:00
parent 0939dd2b57
commit 5f7a9d4bd4
No known key found for this signature in database
GPG key ID: 048413F95F0DDE1F
5 changed files with 14 additions and 11 deletions

View file

@ -64,8 +64,6 @@ export default defineConfig({
plugins: [
new rspack.ProvidePlugin({
dbg: [join(__dirname, "src/log.ts"), "default"],
Function: [join(__dirname, "src/snapshot.ts"), "Function"],
Request: [join(__dirname, "src/snapshot.ts"), "Request"],
}),
process.env.OBFUSCATE === "true" && {
apply(compiler) {

View file

@ -7,7 +7,6 @@ import {
rewrite_js,
rewrite_js_from_arraybuffer,
} from "../../../rewriter/out/rewriter.js";
import { config } from "../../shared";
initSync(
new WebAssembly.Module(
@ -58,7 +57,7 @@ export function rewriteJsNaiive(js: string | ArrayBuffer, origin?: URL) {
}
return `
with (${config.wrapfn}(globalThis)) {
with (${self.$scramjet.config.wrapfn}(globalThis)) {
${js}

View file

@ -1,10 +1,11 @@
import { rewriteJs } from "./js";
const clientscripts = ["wasm", "shared", "client"];
export function rewriteWorkers(js: string | ArrayBuffer, origin?: URL) {
const dest = origin.searchParams.get("dest");
const type = origin.searchParams.get("type");
export function rewriteWorkers(
js: string | ArrayBuffer,
type: string,
origin?: URL
) {
origin.search = "";
let str = "";
@ -35,7 +36,7 @@ self.$scramjet.codec = self.$scramjet.codecs[self.$scramjet.config.codec];
str += rewritten;
dbg.log("Rewrite", type, dest, str);
dbg.log("Rewrite", type, str);
return str;
}

View file

@ -172,7 +172,11 @@ async function handleResponse(
break;
case "sharedworker":
case "worker":
responseBody = rewriteWorkers(await response.arrayBuffer(), url);
responseBody = rewriteWorkers(
await response.arrayBuffer(),
workertype,
url
);
break;
default:
responseBody = response.body;

View file

@ -111,6 +111,7 @@ export class ScramjetServiceWorker {
async fetch({ request, clientId }: FetchEvent) {
if (new URL(request.url).pathname.startsWith("/scramjet/worker")) {
const dataurl = new URL(request.url).searchParams.get("data");
const type = new URL(request.url).searchParams.get("type");
const res = await fetch(dataurl);
const ab = await res.arrayBuffer();
@ -118,7 +119,7 @@ export class ScramjetServiceWorker {
decodeURIComponent(new URL(request.url).searchParams.get("origin"))
);
const rewritten = rewriteWorkers(ab, new URL(origin));
const rewritten = rewriteWorkers(ab, type, new URL(origin));
return new Response(rewritten, {
headers: {