mirror of
https://github.com/denoland/deno.git
synced 2025-10-02 23:24:37 +00:00
First pass at HTTP imports
Implement --reload Integrate hyper errors into DenoError In collaboration with Tommy Savaria <tommy.savaria@protonmail.ch>
This commit is contained in:
parent
242e68e50c
commit
e2f9b0e6fd
8 changed files with 198 additions and 52 deletions
29
src/net.rs
Normal file
29
src/net.rs
Normal file
|
@ -0,0 +1,29 @@
|
|||
use errors::DenoResult;
|
||||
use hyper::rt::{Future, Stream};
|
||||
use hyper::{Client, Uri};
|
||||
use tokio::runtime::current_thread::Runtime;
|
||||
|
||||
// The CodeFetch message is used to load HTTP javascript resources and expects a
|
||||
// synchronous response, this utility method supports that.
|
||||
pub fn fetch_sync_string(module_name: &str) -> DenoResult<String> {
|
||||
let url = module_name.parse::<Uri>().unwrap();
|
||||
let client = Client::new();
|
||||
|
||||
// TODO Use Deno's RT
|
||||
let mut rt = Runtime::new().unwrap();
|
||||
|
||||
let body = rt.block_on(
|
||||
client
|
||||
.get(url)
|
||||
.and_then(|response| response.into_body().concat2()),
|
||||
)?;
|
||||
Ok(String::from_utf8(body.to_vec()).unwrap())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_fetch_sync_string() {
|
||||
// Relies on external http server. See tools/http_server.py
|
||||
let p = fetch_sync_string("http://localhost:4545/package.json").unwrap();
|
||||
println!("package.json len {}", p.len());
|
||||
assert!(p.len() > 1);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue