mirror of
https://github.com/denoland/deno.git
synced 2024-12-22 15:24:46 -05:00
e0cfc9da39
This reverts commitf6fd6619e7
. I'm seeing a difference between canary and 1.45.2. In `deno-docs/reference_gen` I can't download dax when running `deno task types` ``` ~/src/deno-docs/reference_gen# deno upgrade --canary Looking up latest canary version Found latest versionf6fd6619e7
Downloading https://dl.deno.land/canary/f6fd6619e708a515831f707438368d81b0c9aa56/deno-aarch64-apple-darwin.zip Deno is upgrading to versionf6fd6619e7
Archive: /var/folders/9v/kys6gqns6kl8nksyn4l1f9v40000gn/T/.tmpb5lDnq/deno.zip inflating: deno Upgraded successfully ~/src/deno-docs/reference_gen# deno -v deno 1.45.2+f6fd661 ~/src/deno-docs/reference_gen# rm -rf /Users/ry/Library/Caches/deno ~/src/deno-docs/reference_gen# deno task types Task types deno task types:deno && deno task types:node Task types:deno deno run --allow-read --allow-write --allow-run --allow-env --allow-sys deno-docs.ts error: JSR package manifest for '@david/dax' failed to load. expected value at line 1 column 1 at file:///Users/ry/src/deno-docs/reference_gen/deno-docs.ts:2:15 ~/src/deno-docs/reference_gen# deno upgrade --version 1.45.2 Downloading https://github.com/denoland/deno/releases/download/v1.45.2/deno-aarch64-apple-darwin.zip Deno is upgrading to version 1.45.2 Archive: /var/folders/9v/kys6gqns6kl8nksyn4l1f9v40000gn/T/.tmp3R7uhF/deno.zip inflating: deno Upgraded successfully ~/src/deno-docs/reference_gen# rm -rf /Users/ry/Library/Caches/deno ~/src/deno-docs/reference_gen# deno task types Task types deno task types:deno && deno task types:node Task types:deno deno run --allow-read --allow-write --allow-run --allow-env --allow-sys deno-docs.ts Task types:node deno run --allow-read --allow-write=. --allow-env --allow-sys node-docs.ts ```
49 lines
1.4 KiB
Rust
49 lines
1.4 KiB
Rust
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
|
|
|
use crate::CancelHandle;
|
|
use crate::CancelableResponseFuture;
|
|
use crate::FetchHandler;
|
|
|
|
use deno_core::error::type_error;
|
|
use deno_core::futures::FutureExt;
|
|
use deno_core::futures::TryFutureExt;
|
|
use deno_core::url::Url;
|
|
use deno_core::CancelFuture;
|
|
use deno_core::OpState;
|
|
use reqwest::StatusCode;
|
|
use std::rc::Rc;
|
|
use tokio_util::io::ReaderStream;
|
|
|
|
/// An implementation which tries to read file URLs from the file system via
|
|
/// tokio::fs.
|
|
#[derive(Clone)]
|
|
pub struct FsFetchHandler;
|
|
|
|
impl FetchHandler for FsFetchHandler {
|
|
fn fetch_file(
|
|
&self,
|
|
_state: &mut OpState,
|
|
url: Url,
|
|
) -> (CancelableResponseFuture, Option<Rc<CancelHandle>>) {
|
|
let cancel_handle = CancelHandle::new_rc();
|
|
let response_fut = async move {
|
|
let path = url.to_file_path()?;
|
|
let file = tokio::fs::File::open(path).map_err(|_| ()).await?;
|
|
let stream = ReaderStream::new(file);
|
|
let body = reqwest::Body::wrap_stream(stream);
|
|
let response = http::Response::builder()
|
|
.status(StatusCode::OK)
|
|
.body(body)
|
|
.map_err(|_| ())?
|
|
.into();
|
|
Ok::<_, ()>(response)
|
|
}
|
|
.map_err(move |_| {
|
|
type_error("NetworkError when attempting to fetch resource.")
|
|
})
|
|
.or_cancel(&cancel_handle)
|
|
.boxed_local();
|
|
|
|
(response_fut, Some(cancel_handle))
|
|
}
|
|
}
|