From dd65fc7c3ad037e6674e8bac8c46f4bdeca6c4ca Mon Sep 17 00:00:00 2001 From: Paolo Barbolini Date: Mon, 21 Oct 2019 22:55:42 +0200 Subject: [PATCH] wasm: translate over response headers (#689) Closes #656 --- Cargo.toml | 2 +- src/wasm/client.rs | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index b1aecc6..d47e3bd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -115,7 +115,7 @@ winreg = "0.6" [target.'cfg(target_arch = "wasm32")'.dependencies] js-sys = "0.3.28" -wasm-bindgen = "0.2.51" +wasm-bindgen = { version = "0.2.51", features = ["serde-serialize"] } wasm-bindgen-futures = "0.4.1" [target.'cfg(target_arch = "wasm32")'.dependencies.web-sys] diff --git a/src/wasm/client.rs b/src/wasm/client.rs index 95b4246..a38b16f 100644 --- a/src/wasm/client.rs +++ b/src/wasm/client.rs @@ -129,8 +129,6 @@ async fn fetch(req: Request) -> crate::Result { let mut resp = http::Response::builder(); resp.status(js_resp.status()); - // TODO: translate js_resp.headers() - /* let js_headers = js_resp.headers(); let js_iter = js_sys::try_iter(&js_headers) .expect_throw("headers try_iter") @@ -138,8 +136,12 @@ async fn fetch(req: Request) -> crate::Result { for item in js_iter { let item = item.expect_throw("headers iterator doesn't throw"); + let v: Vec = item.into_serde().expect_throw("headers into_serde"); + resp.header( + v.get(0).expect_throw("headers name"), + v.get(1).expect_throw("headers value"), + ); } - */ resp.body(js_resp) .map(Response::new)