mirror of
https://github.com/MercuryWorkshop/scramjet.git
synced 2025-05-13 22:40:01 -04:00
do some more worker rewriting
This commit is contained in:
parent
a25e71a6fd
commit
4ce4226afa
4 changed files with 33 additions and 2 deletions
|
@ -11,3 +11,21 @@ Worker = new Proxy(Worker, {
|
|||
return Reflect.construct(target, argArray);
|
||||
}
|
||||
})
|
||||
|
||||
Worklet.prototype.addModule = new Proxy(Worklet.prototype.addModule, {
|
||||
apply(target, thisArg, argArray) {
|
||||
argArray[0] = encodeUrl(argArray[0])
|
||||
|
||||
return Reflect.apply(target, thisArg, argArray);
|
||||
},
|
||||
});
|
||||
|
||||
window.importScripts = new Proxy(window.importScripts, {
|
||||
apply(target, thisArg, argArray) {
|
||||
for (const i in argArray) {
|
||||
argArray[i] = encodeUrl(argArray[i]);
|
||||
}
|
||||
|
||||
return Reflect.apply(target, thisArg, argArray);
|
||||
},
|
||||
});
|
|
@ -3,6 +3,7 @@ export { rewriteCss } from "./rewriters/css";
|
|||
export { rewriteHtml, rewriteSrcset } from "./rewriters/html";
|
||||
export { rewriteJs } from "./rewriters/js";
|
||||
export { rewriteHeaders } from "./rewriters/headers";
|
||||
export { rewriteWorkers } from "./rewriters/worker"
|
||||
export { BareClient } from "@mercuryworkshop/bare-mux"
|
||||
|
||||
export function isScramjetFile(src: string) {
|
||||
|
|
11
src/shared/rewriters/worker.ts
Normal file
11
src/shared/rewriters/worker.ts
Normal file
|
@ -0,0 +1,11 @@
|
|||
import { rewriteJs } from "./js";
|
||||
export function rewriteWorkers(js: string, origin?: URL) {
|
||||
let str = new String().toString()
|
||||
//@ts-expect-error
|
||||
["codecs", "config", "shared", "client"].forEach((script) => {
|
||||
str += `import "${self.__scramjet$config[script]}"\n`
|
||||
})
|
||||
str += rewriteJs(js, origin);
|
||||
|
||||
return str;
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
import { BareClient } from "@mercuryworkshop/bare-mux";
|
||||
import { BareResponseFetch } from "@mercuryworkshop/bare-mux";
|
||||
import { encodeUrl, decodeUrl, rewriteCss, rewriteHeaders, rewriteHtml, rewriteJs } from "../shared";
|
||||
import { encodeUrl, decodeUrl, rewriteCss, rewriteHeaders, rewriteHtml, rewriteJs, rewriteWorkers } from "../shared";
|
||||
|
||||
declare global {
|
||||
interface Window {
|
||||
|
@ -62,6 +62,7 @@ export default class ScramjetServiceWorker {
|
|||
break;
|
||||
case "sharedworker":
|
||||
case "worker":
|
||||
responseBody = rewriteWorkers(await response.text(), url);
|
||||
break;
|
||||
default:
|
||||
responseBody = response.body;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue