mirror of
https://github.com/MercuryWorkshop/scramjet.git
synced 2025-05-13 06:20:02 -04:00
fix workers
This commit is contained in:
parent
0939dd2b57
commit
5f7a9d4bd4
5 changed files with 14 additions and 11 deletions
|
@ -64,8 +64,6 @@ export default defineConfig({
|
||||||
plugins: [
|
plugins: [
|
||||||
new rspack.ProvidePlugin({
|
new rspack.ProvidePlugin({
|
||||||
dbg: [join(__dirname, "src/log.ts"), "default"],
|
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" && {
|
process.env.OBFUSCATE === "true" && {
|
||||||
apply(compiler) {
|
apply(compiler) {
|
||||||
|
|
|
@ -7,7 +7,6 @@ import {
|
||||||
rewrite_js,
|
rewrite_js,
|
||||||
rewrite_js_from_arraybuffer,
|
rewrite_js_from_arraybuffer,
|
||||||
} from "../../../rewriter/out/rewriter.js";
|
} from "../../../rewriter/out/rewriter.js";
|
||||||
import { config } from "../../shared";
|
|
||||||
|
|
||||||
initSync(
|
initSync(
|
||||||
new WebAssembly.Module(
|
new WebAssembly.Module(
|
||||||
|
@ -58,7 +57,7 @@ export function rewriteJsNaiive(js: string | ArrayBuffer, origin?: URL) {
|
||||||
}
|
}
|
||||||
|
|
||||||
return `
|
return `
|
||||||
with (${config.wrapfn}(globalThis)) {
|
with (${self.$scramjet.config.wrapfn}(globalThis)) {
|
||||||
|
|
||||||
${js}
|
${js}
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
import { rewriteJs } from "./js";
|
import { rewriteJs } from "./js";
|
||||||
|
|
||||||
const clientscripts = ["wasm", "shared", "client"];
|
const clientscripts = ["wasm", "shared", "client"];
|
||||||
export function rewriteWorkers(js: string | ArrayBuffer, origin?: URL) {
|
export function rewriteWorkers(
|
||||||
const dest = origin.searchParams.get("dest");
|
js: string | ArrayBuffer,
|
||||||
const type = origin.searchParams.get("type");
|
type: string,
|
||||||
|
origin?: URL
|
||||||
|
) {
|
||||||
origin.search = "";
|
origin.search = "";
|
||||||
|
|
||||||
let str = "";
|
let str = "";
|
||||||
|
@ -35,7 +36,7 @@ self.$scramjet.codec = self.$scramjet.codecs[self.$scramjet.config.codec];
|
||||||
|
|
||||||
str += rewritten;
|
str += rewritten;
|
||||||
|
|
||||||
dbg.log("Rewrite", type, dest, str);
|
dbg.log("Rewrite", type, str);
|
||||||
|
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
|
@ -172,7 +172,11 @@ async function handleResponse(
|
||||||
break;
|
break;
|
||||||
case "sharedworker":
|
case "sharedworker":
|
||||||
case "worker":
|
case "worker":
|
||||||
responseBody = rewriteWorkers(await response.arrayBuffer(), url);
|
responseBody = rewriteWorkers(
|
||||||
|
await response.arrayBuffer(),
|
||||||
|
workertype,
|
||||||
|
url
|
||||||
|
);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
responseBody = response.body;
|
responseBody = response.body;
|
||||||
|
|
|
@ -111,6 +111,7 @@ export class ScramjetServiceWorker {
|
||||||
async fetch({ request, clientId }: FetchEvent) {
|
async fetch({ request, clientId }: FetchEvent) {
|
||||||
if (new URL(request.url).pathname.startsWith("/scramjet/worker")) {
|
if (new URL(request.url).pathname.startsWith("/scramjet/worker")) {
|
||||||
const dataurl = new URL(request.url).searchParams.get("data");
|
const dataurl = new URL(request.url).searchParams.get("data");
|
||||||
|
const type = new URL(request.url).searchParams.get("type");
|
||||||
const res = await fetch(dataurl);
|
const res = await fetch(dataurl);
|
||||||
const ab = await res.arrayBuffer();
|
const ab = await res.arrayBuffer();
|
||||||
|
|
||||||
|
@ -118,7 +119,7 @@ export class ScramjetServiceWorker {
|
||||||
decodeURIComponent(new URL(request.url).searchParams.get("origin"))
|
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, {
|
return new Response(rewritten, {
|
||||||
headers: {
|
headers: {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue