pass in full scramjet config

This commit is contained in:
Toshit Chawda 2024-07-29 22:29:32 -07:00
parent c60645d478
commit f0e8aed666
No known key found for this signature in database
GPG key ID: 91480ED99E2B3D9D
2 changed files with 10 additions and 12 deletions

View file

@ -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()) Reflect::get(config, &k.into())
.unwrap() .unwrap()
.as_string() .as_string()
@ -43,7 +47,7 @@ fn get_str(config: &Object, k: &str) -> String {
fn get_config(config: Object) -> Config { fn get_config(config: Object) -> Config {
Config { Config {
prefix: get_str(&config, "prefix"), 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"), wrapfn: get_str(&config, "wrapfn"),
importfn: get_str(&config, "importfn"), importfn: get_str(&config, "importfn"),
rewritefn: get_str(&config, "rewritefn"), rewritefn: get_str(&config, "rewritefn"),

View file

@ -24,21 +24,15 @@ export function rewriteJs(js: string | ArrayBuffer, origin?: URL) {
if ("window" in globalThis) origin ??= new URL(decodeUrl(location.href)); if ("window" in globalThis) origin ??= new URL(decodeUrl(location.href));
const before = performance.now(); 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") { 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 { } else {
js = rewrite_js_from_arraybuffer( js = rewrite_js_from_arraybuffer(
new Uint8Array(js), new Uint8Array(js),
origin.toString(), origin.toString(),
cfg self.$scramjet.config
); );
} }
const after = performance.now(); const after = performance.now();