summaryrefslogtreecommitdiff
path: root/cli/ops/fetch.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/ops/fetch.rs')
-rw-r--r--cli/ops/fetch.rs29
1 files changed, 15 insertions, 14 deletions
diff --git a/cli/ops/fetch.rs b/cli/ops/fetch.rs
index 690cbc592..44031e2ac 100644
--- a/cli/ops/fetch.rs
+++ b/cli/ops/fetch.rs
@@ -2,10 +2,9 @@
use super::io::{StreamResource, StreamResourceHolder};
use crate::http_util::{create_http_client, HttpBody};
-use crate::state::State;
use deno_core::BufVec;
use deno_core::ErrBox;
-use deno_core::OpRegistry;
+use deno_core::OpState;
use deno_core::ZeroCopyBuf;
use http::header::HeaderName;
use http::header::HeaderValue;
@@ -13,13 +12,14 @@ use http::Method;
use reqwest::Client;
use serde_derive::Deserialize;
use serde_json::Value;
+use std::cell::RefCell;
use std::convert::From;
use std::path::PathBuf;
use std::rc::Rc;
-pub fn init(s: &Rc<State>) {
- s.register_op_json_async("op_fetch", op_fetch);
- s.register_op_json_sync("op_create_http_client", op_create_http_client);
+pub fn init(rt: &mut deno_core::JsRuntime) {
+ super::reg_json_async(rt, "op_fetch", op_fetch);
+ super::reg_json_sync(rt, "op_create_http_client", op_create_http_client);
}
#[derive(Deserialize)]
@@ -32,7 +32,7 @@ struct FetchArgs {
}
async fn op_fetch(
- state: Rc<State>,
+ state: Rc<RefCell<OpState>>,
args: Value,
data: BufVec,
) -> Result<Value, ErrBox> {
@@ -40,13 +40,15 @@ async fn op_fetch(
let url = args.url;
let client = if let Some(rid) = args.client_rid {
- let resource_table_ = state.resource_table.borrow();
- let r = resource_table_
+ let state = state.borrow();
+ let r = state
+ .resource_table
.get::<HttpClientResource>(rid)
.ok_or_else(ErrBox::bad_resource_id)?;
r.client.clone()
} else {
- let client_ref = state.http_client.borrow_mut();
+ let cli_state = super::cli_state2(&state);
+ let client_ref = cli_state.http_client.borrow();
client_ref.clone()
};
@@ -66,7 +68,7 @@ async fn op_fetch(
)));
}
- state.check_net_url(&url_)?;
+ super::cli_state2(&state).check_net_url(&url_)?;
let mut request = client.request(method, url_);
@@ -93,7 +95,7 @@ async fn op_fetch(
}
let body = HttpBody::from(res);
- let rid = state.resource_table.borrow_mut().add(
+ let rid = state.borrow_mut().resource_table.add(
"httpBody",
Box::new(StreamResourceHolder::new(StreamResource::HttpBody(
Box::new(body),
@@ -128,21 +130,20 @@ struct CreateHttpClientOptions {
}
fn op_create_http_client(
- state: &State,
+ state: &mut OpState,
args: Value,
_zero_copy: &mut [ZeroCopyBuf],
) -> Result<Value, ErrBox> {
let args: CreateHttpClientOptions = serde_json::from_value(args)?;
if let Some(ca_file) = args.ca_file.clone() {
- state.check_read(&PathBuf::from(ca_file))?;
+ super::cli_state(state).check_read(&PathBuf::from(ca_file))?;
}
let client = create_http_client(args.ca_file.as_deref()).unwrap();
let rid = state
.resource_table
- .borrow_mut()
.add("httpClient", Box::new(HttpClientResource::new(client)));
Ok(json!(rid))
}