1use crate::Result;
2use http::{HeaderMap, HeaderName, HeaderValue};
3use js_sys::Array;
4
5pub(crate) fn header_map_from_web_sys_headers(
6 from_headers: web_sys::Headers,
7 to_headers: &mut HeaderMap,
8) -> Result<()> {
9 for res in from_headers.entries().into_iter() {
11 let a: Array = res?.into();
13 let key = a.get(0).as_string().unwrap();
15 let value = a.get(1).as_string().unwrap();
16 to_headers.append(
17 HeaderName::from_bytes(key.as_bytes())?,
18 HeaderValue::from_str(&value)?,
19 );
20 }
21 Ok(())
22}
23
24pub(crate) fn web_sys_headers_from_header_map(headers: &HeaderMap) -> Result<web_sys::Headers> {
25 let output = web_sys::Headers::new()?;
26 for (key, value) in headers.iter() {
27 output.append(key.as_str(), std::str::from_utf8(value.as_bytes())?)?;
28 }
29 Ok(output)
30}