diff --git a/src/shared/rewriters/html.ts b/src/shared/rewriters/html.ts index 317524b..2e04ffe 100644 --- a/src/shared/rewriters/html.ts +++ b/src/shared/rewriters/html.ts @@ -95,14 +95,14 @@ function traverseParsedHtml(node, origin?: URL) { /(application|text)\/javascript|module|importmap|undefined/.test( node.attribs.type ) && - node.children[0] !== undefined - && !(node.attribs["data-scramjet"]) + node.children[0] !== undefined && + !node.attribs["data-scramjet"] ) { let js = node.children[0].data; const htmlcomment = //g; js = js.replace(htmlcomment, ""); node.children[0].data = rewriteJs(js, origin); - console.log(node.children) + console.log(node.children); } if (node.name === "meta" && hasAttrib(node, "http-equiv")) { if (node.attribs["http-equiv"] === "content-security-policy") { @@ -121,15 +121,22 @@ function traverseParsedHtml(node, origin?: URL) { if (node.name === "head") { const scripts = []; - const codecs = new Element("script", { src: self.$scramjet.config["codecs"], "data-scramjet": "true" }); - const config = new Element("script", { "data-scramjet": "true" }, [], ElementType.Script); - config.children[0] = new Text(`self.$scramjet.config = ${JSON.stringify(self.$scramjet.config)}; - self.$scramjet.codec = self.$scramjet.codecs[self.$scramjet.config.codec];`); - console.log(config.children[0]); - const shared = new Element("script", { src: self.$scramjet.config["shared"], "data-scramjet": "true" }); - const client = new Element("script", { src: self.$scramjet.config["client"], "data-scramjet": "true" }); + const codecs = new Element("script", { + src: self.$scramjet.config["codecs"], + "data-scramjet": "true", + }); + const shared = new Element("script", { + src: self.$scramjet.config["shared"], + onload: `self.$scramjet.config = ${JSON.stringify(self.$scramjet.config)}; + self.$scramjet.codec = self.$scramjet.codecs[self.$scramjet.config.codec];`, + "data-scramjet": "true", + }); + const client = new Element("script", { + src: self.$scramjet.config["client"], + "data-scramjet": "true", + }); - scripts.push(codecs, config, shared, client); + scripts.push(codecs, shared, client); node.children.unshift(...scripts); } diff --git a/src/shared/rewriters/worker.ts b/src/shared/rewriters/worker.ts index 444a490..47f6a20 100644 --- a/src/shared/rewriters/worker.ts +++ b/src/shared/rewriters/worker.ts @@ -1,6 +1,6 @@ import { rewriteJs } from "./js"; -const clientscripts = ["codecs", "config", "shared", "client"]; +const clientscripts = ["codecs", "shared", "client"]; export function rewriteWorkers(js: string | ArrayBuffer, origin?: URL) { let dest = origin.searchParams.get("dest"); let type = origin.searchParams.get("type"); @@ -24,6 +24,8 @@ export function rewriteWorkers(js: string | ArrayBuffer, origin?: URL) { if (rewritten instanceof Uint8Array) { rewritten = new TextDecoder().decode(rewritten); } + str += `self.$scramjet.config = ${JSON.stringify(self.$scramjet.config)}; + self.$scramjet.codec = self.$scramjet.codecs[self.$scramjet.config.codec];\n`; str += "\n" + rewritten; dbg.log("Rewrite", type, dest, str);