Skip to content

Commit c7e966c

Browse files
authored
Remove HeaderExt and AbortSignalExt (#621)
* Remove HeaderExt Closes #617 * Fix deprecation warnings * feature
1 parent 6a5bfc1 commit c7e966c

File tree

16 files changed

+204
-251
lines changed

16 files changed

+204
-251
lines changed

Cargo.lock

Lines changed: 161 additions & 112 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/digest/src/lib.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ async fn main(_req: Request, _env: Env, _ctx: Context) -> Result<Response> {
2929
}
3030

3131
fn str_to_readable_stream(value: &str) -> web_sys::ReadableStream {
32-
let mut req_init = web_sys::RequestInit::new();
33-
req_init.method("POST");
34-
req_init.body(Some(&JsValue::from_str(value)));
32+
let req_init = web_sys::RequestInit::new();
33+
req_init.set_method("POST");
34+
req_init.set_body(&JsValue::from_str(value));
3535
let req = web_sys::Request::new_with_str_and_init("http://internal", &req_init).unwrap();
3636
req.body().unwrap()
3737
}

worker-sys/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ wasm-bindgen.workspace = true
1313
cfg-if = "1.0.0"
1414

1515
[dependencies.web-sys]
16-
version = "0.3.63"
16+
version = ">=0.3.70"
1717
features = [
1818
"ReadableStream",
1919
"WritableStream",

worker-sys/src/ext.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11
mod abort_controller;
2-
mod abort_signal;
32
mod cache_storage;
4-
mod headers;
53
mod request;
64
mod response;
75
mod response_init;
86
mod websocket;
97

108
pub use abort_controller::*;
11-
pub use abort_signal::*;
129
pub use cache_storage::*;
13-
pub use headers::*;
1410
pub use request::*;
1511
pub use response::*;
1612
pub use response_init::*;

worker-sys/src/ext/abort_signal.rs

Lines changed: 0 additions & 42 deletions
This file was deleted.

worker-sys/src/ext/headers.rs

Lines changed: 0 additions & 42 deletions
This file was deleted.

worker/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ version = "0.8.4"
4545
default-features = false
4646

4747
[dependencies.web-sys]
48-
version = "0.3.63"
48+
version = ">=0.3.70"
4949
features = [
5050
"File",
5151
"WorkerGlobalScope",

worker/src/abort.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
use std::ops::Deref;
22

33
use wasm_bindgen::JsValue;
4-
use worker_sys::ext::{AbortControllerExt, AbortSignalExt};
54

65
/// An interface that allows you to abort in-flight [Fetch](crate::Fetch) requests.
76
#[derive(Debug)]

worker/src/cache.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,8 @@ impl Cache {
103103
key: K,
104104
ignore_method: bool,
105105
) -> Result<Option<Response>> {
106-
let mut options = web_sys::CacheQueryOptions::new();
107-
options.ignore_method(ignore_method);
106+
let options = web_sys::CacheQueryOptions::new();
107+
options.set_ignore_method(ignore_method);
108108

109109
let promise = match key.into() {
110110
CacheKey::Url(url) => self
@@ -136,8 +136,8 @@ impl Cache {
136136
key: K,
137137
ignore_method: bool,
138138
) -> Result<CacheDeletionOutcome> {
139-
let mut options = web_sys::CacheQueryOptions::new();
140-
options.ignore_method(ignore_method);
139+
let options = web_sys::CacheQueryOptions::new();
140+
options.set_ignore_method(ignore_method);
141141

142142
let promise = match key.into() {
143143
CacheKey::Url(url) => self

worker/src/global.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ impl Fetch {
3131
}
3232

3333
async fn fetch_with_str(url: &str, signal: Option<&AbortSignal>) -> Result<Response> {
34-
let mut init = web_sys::RequestInit::new();
35-
init.signal(signal.map(|x| x.deref()));
34+
let init = web_sys::RequestInit::new();
35+
init.set_signal(signal.map(|x| x.deref()));
3636

3737
let worker: web_sys::WorkerGlobalScope = js_sys::global().unchecked_into();
3838
let promise = worker.fetch_with_str_and_init(url, &init);
@@ -42,8 +42,8 @@ async fn fetch_with_str(url: &str, signal: Option<&AbortSignal>) -> Result<Respo
4242
}
4343

4444
async fn fetch_with_request(request: &Request, signal: Option<&AbortSignal>) -> Result<Response> {
45-
let mut init = web_sys::RequestInit::new();
46-
init.signal(signal.map(|x| x.deref()));
45+
let init = web_sys::RequestInit::new();
46+
init.set_signal(signal.map(|x| x.deref()));
4747

4848
let worker: web_sys::WorkerGlobalScope = js_sys::global().unchecked_into();
4949
let req = request.inner();

worker/src/headers.rs

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ use std::{
99
use http::{header::HeaderName, HeaderMap, HeaderValue};
1010
use js_sys::Array;
1111
use wasm_bindgen::JsValue;
12-
use worker_sys::ext::HeadersExt;
1312

1413
/// A [Headers](https://developer.mozilla.org/en-US/docs/Web/API/Headers) representation used in
1514
/// Request and Response objects.
@@ -65,8 +64,6 @@ impl Headers {
6564
pub fn entries(&self) -> HeaderIterator {
6665
self.0
6766
.entries()
68-
// Header.entries() doesn't error: https://developer.mozilla.org/en-US/docs/Web/API/Headers/entries
69-
.unwrap()
7067
.into_iter()
7168
// The entries iterator.next() will always return a proper value: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols
7269
.map((|a| a.unwrap().into()) as F1)
@@ -79,8 +76,6 @@ impl Headers {
7976
pub fn keys(&self) -> impl Iterator<Item = String> {
8077
self.0
8178
.keys()
82-
// Header.keys() doesn't error: https://developer.mozilla.org/en-US/docs/Web/API/Headers/keys
83-
.unwrap()
8479
.into_iter()
8580
// The keys iterator.next() will always return a proper value containing a string
8681
.map(|a| a.unwrap().as_string().unwrap())
@@ -91,8 +86,6 @@ impl Headers {
9186
pub fn values(&self) -> impl Iterator<Item = String> {
9287
self.0
9388
.values()
94-
// Header.values() doesn't error: https://developer.mozilla.org/en-US/docs/Web/API/Headers/values
95-
.unwrap()
9689
.into_iter()
9790
// The values iterator.next() will always return a proper value containing a string
9891
.map(|a| a.unwrap().as_string().unwrap())

worker/src/http/header.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
use crate::Result;
22
use http::{HeaderMap, HeaderName, HeaderValue};
33
use js_sys::Array;
4-
use worker_sys::ext::HeadersExt;
54

65
pub(crate) fn header_map_from_web_sys_headers(
76
from_headers: web_sys::Headers,
87
to_headers: &mut HeaderMap,
98
) -> Result<()> {
109
// Header.entries() doesn't error: https://developer.mozilla.org/en-US/docs/Web/API/Headers/entries
11-
for res in from_headers.entries()?.into_iter() {
10+
for res in from_headers.entries().into_iter() {
1211
// The entries iterator.next() will always return a proper value: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols
1312
let a: Array = res?.into();
1413
// The entries iterator always returns an array[2] of strings

worker/src/http/request.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,17 +50,17 @@ pub fn from_wasm(req: web_sys::Request) -> Result<http::Request<Body>> {
5050
pub fn to_wasm<B: http_body::Body<Data = Bytes> + 'static>(
5151
mut req: http::Request<B>,
5252
) -> Result<web_sys::Request> {
53-
let mut init = web_sys::RequestInit::new();
54-
init.method(req.method().as_str());
53+
let init = web_sys::RequestInit::new();
54+
init.set_method(req.method().as_str());
5555
let headers = web_sys_headers_from_header_map(req.headers())?;
56-
init.headers(headers.as_ref());
56+
init.set_headers(headers.as_ref());
5757
let uri = req.uri().to_string();
5858

5959
let signal = req.extensions_mut().remove::<AbortSignal>();
60-
init.signal(signal.as_ref().map(|s| s.inner()));
60+
init.set_signal(signal.as_ref().map(|s| s.inner()));
6161

6262
if let Some(redirect) = req.extensions_mut().remove::<RequestRedirect>() {
63-
init.redirect(redirect.into());
63+
init.set_redirect(redirect.into());
6464
}
6565

6666
if let Some(cf) = req.extensions_mut().remove::<Cf>() {
@@ -81,7 +81,7 @@ pub fn to_wasm<B: http_body::Body<Data = Bytes> + 'static>(
8181
if !body.is_end_stream() {
8282
let readable_stream =
8383
wasm_streams::ReadableStream::from_stream(BodyStream::new(body)).into_raw();
84-
init.body(Some(readable_stream.as_ref()));
84+
init.set_body(readable_stream.as_ref());
8585
}
8686

8787
Ok(web_sys::Request::new_with_str_and_init(&uri, &init)?)

worker/src/request.rs

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -86,21 +86,20 @@ impl TryFrom<&Request> for web_sys::Request {
8686
impl Request {
8787
/// Construct a new `Request` with an HTTP Method.
8888
pub fn new(uri: &str, method: Method) -> Result<Self> {
89-
web_sys::Request::new_with_str_and_init(
90-
uri,
91-
web_sys::RequestInit::new().method(method.as_ref()),
92-
)
93-
.map(|req| {
94-
let mut req: Request = req.into();
95-
req.immutable = false;
96-
req
97-
})
98-
.map_err(|e| {
99-
Error::JsError(
100-
e.as_string()
101-
.unwrap_or_else(|| "invalid URL or method for Request".to_string()),
102-
)
103-
})
89+
let init = web_sys::RequestInit::new();
90+
init.set_method(method.as_ref());
91+
web_sys::Request::new_with_str_and_init(uri, &init)
92+
.map(|req| {
93+
let mut req: Request = req.into();
94+
req.immutable = false;
95+
req
96+
})
97+
.map_err(|e| {
98+
Error::JsError(
99+
e.as_string()
100+
.unwrap_or_else(|| "invalid URL or method for Request".to_string()),
101+
)
102+
})
104103
}
105104

106105
/// Construct a new `Request` with a `RequestInit` configuration.

worker/src/request_init.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,13 @@ impl RequestInit {
5757

5858
impl From<&RequestInit> for web_sys::RequestInit {
5959
fn from(req: &RequestInit) -> Self {
60-
let mut inner = web_sys::RequestInit::new();
61-
inner.headers(req.headers.as_ref());
62-
inner.method(req.method.as_ref());
63-
inner.redirect(req.redirect.into());
64-
inner.body(req.body.as_ref());
60+
let inner = web_sys::RequestInit::new();
61+
inner.set_headers(req.headers.as_ref());
62+
inner.set_method(req.method.as_ref());
63+
inner.set_redirect(req.redirect.into());
64+
if let Some(body) = req.body.as_ref() {
65+
inner.set_body(body);
66+
}
6567

6668
// set the Cloudflare-specific `cf` property on FFI RequestInit
6769
let r = ::js_sys::Reflect::set(

worker/src/response.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -533,8 +533,8 @@ impl ResponseBuilder {
533533
impl From<ResponseBuilder> for web_sys::ResponseInit {
534534
fn from(init: ResponseBuilder) -> Self {
535535
let mut edge_init = web_sys::ResponseInit::new();
536-
edge_init.status(init.status_code);
537-
edge_init.headers(&init.headers.0);
536+
edge_init.set_status(init.status_code);
537+
edge_init.set_headers(&init.headers.0);
538538
if let Some(websocket) = &init.websocket {
539539
edge_init
540540
.websocket(websocket.as_ref())

0 commit comments

Comments
 (0)