diff --git a/rewriter/src/lib.rs b/rewriter/src/lib.rs index ace3913..d6da266 100644 --- a/rewriter/src/lib.rs +++ b/rewriter/src/lib.rs @@ -33,7 +33,11 @@ fn create_encode_function(encode: JsValue) -> EncodeFn { }) } -fn get_str(config: &Object, k: &str) -> String { +fn get_obj(config: &JsValue, k: &str) -> JsValue { + Reflect::get(config, &k.into()).unwrap() +} + +fn get_str(config: &JsValue, k: &str) -> String { Reflect::get(config, &k.into()) .unwrap() .as_string() @@ -43,7 +47,7 @@ fn get_str(config: &Object, k: &str) -> String { fn get_config(config: Object) -> Config { Config { prefix: get_str(&config, "prefix"), - encode: create_encode_function(Reflect::get(&config, &"encode".into()).unwrap()), + encode: create_encode_function(get_obj(&get_obj(&config, "codec"), "encode")), wrapfn: get_str(&config, "wrapfn"), importfn: get_str(&config, "importfn"), rewritefn: get_str(&config, "rewritefn"), diff --git a/src/shared/rewriters/js.ts b/src/shared/rewriters/js.ts index 25064d2..1cbd579 100644 --- a/src/shared/rewriters/js.ts +++ b/src/shared/rewriters/js.ts @@ -24,21 +24,15 @@ export function rewriteJs(js: string | ArrayBuffer, origin?: URL) { if ("window" in globalThis) origin ??= new URL(decodeUrl(location.href)); const before = performance.now(); - const cfg = { - prefix: self.$scramjet.config.prefix, - codec: self.$scramjet.config.codec.encode, - wrapfn: self.$scramjet.config.wrapfn, - trysetfn: self.$scramjet.config.trysetfn, - importfn: self.$scramjet.config.importfn, - rewritefn: self.$scramjet.config.rewritefn, - }; if (typeof js === "string") { - js = new TextDecoder().decode(rewrite_js(js, origin.toString(), cfg)); + js = new TextDecoder().decode( + rewrite_js(js, origin.toString(), self.$scramjet.config) + ); } else { js = rewrite_js_from_arraybuffer( new Uint8Array(js), origin.toString(), - cfg + self.$scramjet.config ); } const after = performance.now();