summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock1
-rw-r--r--cli/tests/unit/fetch_test.ts10
-rw-r--r--ext/fetch/Cargo.toml1
-rw-r--r--ext/fetch/lib.rs18
4 files changed, 19 insertions, 11 deletions
diff --git a/Cargo.lock b/Cargo.lock
index ba7c89460..6b491ac09 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1261,6 +1261,7 @@ dependencies = [
"pin-project",
"reqwest",
"serde",
+ "serde_json",
"tokio",
"tokio-util",
]
diff --git a/cli/tests/unit/fetch_test.ts b/cli/tests/unit/fetch_test.ts
index b4d248440..bd105cb3f 100644
--- a/cli/tests/unit/fetch_test.ts
+++ b/cli/tests/unit/fetch_test.ts
@@ -1160,6 +1160,16 @@ Deno.test(
);
Deno.test(
+ { permissions: { net: true, read: true } },
+ function createHttpClientAcceptPoolIdleTimeout() {
+ const client = Deno.createHttpClient({
+ poolIdleTimeout: 1000,
+ });
+ client.close();
+ },
+);
+
+Deno.test(
{ permissions: { net: true } },
async function fetchCustomClientUserAgent(): Promise<
void
diff --git a/ext/fetch/Cargo.toml b/ext/fetch/Cargo.toml
index af4af29a6..2e3283b08 100644
--- a/ext/fetch/Cargo.toml
+++ b/ext/fetch/Cargo.toml
@@ -23,5 +23,6 @@ http_v02.workspace = true
pin-project.workspace = true
reqwest.workspace = true
serde.workspace = true
+serde_json.workspace = true
tokio.workspace = true
tokio-util = { workspace = true, features = ["io"] }
diff --git a/ext/fetch/lib.rs b/ext/fetch/lib.rs
index 6a2ac2ef9..ee8f30b59 100644
--- a/ext/fetch/lib.rs
+++ b/ext/fetch/lib.rs
@@ -789,13 +789,6 @@ impl HttpClientResource {
}
}
-#[derive(Deserialize, Debug, Clone)]
-#[serde(rename_all = "camelCase")]
-pub enum PoolIdleTimeout {
- State(bool),
- Specify(u64),
-}
-
#[derive(Deserialize, Debug)]
#[serde(rename_all = "camelCase")]
pub struct CreateHttpClientArgs {
@@ -804,7 +797,7 @@ pub struct CreateHttpClientArgs {
cert_chain: Option<String>,
private_key: Option<String>,
pool_max_idle_per_host: Option<usize>,
- pool_idle_timeout: Option<PoolIdleTimeout>,
+ pool_idle_timeout: Option<serde_json::Value>,
#[serde(default = "default_true")]
http1: bool,
#[serde(default = "default_true")]
@@ -867,9 +860,12 @@ where
pool_max_idle_per_host: args.pool_max_idle_per_host,
pool_idle_timeout: args.pool_idle_timeout.and_then(
|timeout| match timeout {
- PoolIdleTimeout::State(true) => None,
- PoolIdleTimeout::State(false) => Some(None),
- PoolIdleTimeout::Specify(specify) => Some(Some(specify)),
+ serde_json::Value::Bool(true) => None,
+ serde_json::Value::Bool(false) => Some(None),
+ serde_json::Value::Number(specify) => {
+ Some(Some(specify.as_u64().unwrap_or_default()))
+ }
+ _ => Some(None),
},
),
http1: args.http1,