@@ -4,7 +4,7 @@ use super::{FetchError, Header, Headers, Method, Result};
4
4
use crate :: browser:: Url ;
5
5
use gloo_timers:: callback:: Timeout ;
6
6
use serde:: Serialize ;
7
- use std:: { borrow:: Cow , cell:: RefCell , rc:: Rc } ;
7
+ use std:: { borrow:: Cow , cell:: RefCell , convert :: TryFrom , rc:: Rc } ;
8
8
use wasm_bindgen:: JsValue ;
9
9
10
10
/// Its methods configure the request, and handle the response. Many of them return the original
@@ -174,16 +174,17 @@ impl<'a> From<Url> for Request<'a> {
174
174
}
175
175
}
176
176
177
- impl From < Request < ' _ > > for web_sys:: Request {
178
- fn from ( request : Request ) -> Self {
177
+ impl TryFrom < Request < ' _ > > for web_sys:: Request {
178
+ type Error = FetchError ;
179
+ fn try_from ( request : Request ) -> std:: result:: Result < Self , Self :: Error > {
179
180
let mut init = web_sys:: RequestInit :: new ( ) ;
180
181
181
182
// headers
182
- let headers = web_sys:: Headers :: new ( ) . expect ( "fetch: cannot create headers" ) ;
183
+ let headers = web_sys:: Headers :: new ( ) . map_err ( FetchError :: RequestError ) ? ;
183
184
for header in request. headers {
184
185
headers
185
186
. append ( & header. name , & header. value )
186
- . expect ( "fetch: cannot create header" )
187
+ . map_err ( FetchError :: RequestError ) ? ;
187
188
}
188
189
init. headers ( & headers) ;
189
190
@@ -250,7 +251,7 @@ impl From<Request<'_>> for web_sys::Request {
250
251
//
251
252
// See https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#Errors
252
253
web_sys:: Request :: new_with_str_and_init ( & request. url , & init)
253
- . expect ( "fetch: Cannot create request" )
254
+ . map_err ( FetchError :: RequestError )
254
255
}
255
256
}
256
257
0 commit comments