diff options
-rw-r--r-- | Cargo.lock | 1 | ||||
-rw-r--r-- | cli/tests/unit/fetch_test.ts | 10 | ||||
-rw-r--r-- | ext/fetch/Cargo.toml | 1 | ||||
-rw-r--r-- | ext/fetch/lib.rs | 18 |
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, |