mirror of
https://github.com/MercuryWorkshop/scramjet.git
synced 2025-05-12 22:10:01 -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: [
|
||||
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) {
|
||||
|
|
|
@ -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}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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: {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue