mirror of
https://github.com/denoland/deno.git
synced 2024-11-25 15:29:32 -05:00
fix: Correctly determine a --cached-only error (#3979)
This commit is contained in:
parent
e6167c7813
commit
3563ab4c53
1 changed files with 12 additions and 10 deletions
|
@ -205,18 +205,20 @@ impl SourceFileFetcher {
|
||||||
} else {
|
} else {
|
||||||
"".to_owned()
|
"".to_owned()
|
||||||
};
|
};
|
||||||
let err = if err_kind == ErrorKind::NotFound {
|
// Hack: Check error message for "--cached-only" because the kind
|
||||||
|
// conflicts with other errors.
|
||||||
|
let err = if err.to_string().contains("--cached-only") {
|
||||||
|
let msg = format!(
|
||||||
|
r#"Cannot find module "{}"{} in cache, --cached-only is specified"#,
|
||||||
|
module_url, referrer_suffix
|
||||||
|
);
|
||||||
|
DenoError::new(ErrorKind::NotFound, msg).into()
|
||||||
|
} else if err_kind == ErrorKind::NotFound {
|
||||||
let msg = format!(
|
let msg = format!(
|
||||||
r#"Cannot resolve module "{}"{}"#,
|
r#"Cannot resolve module "{}"{}"#,
|
||||||
module_url, referrer_suffix
|
module_url, referrer_suffix
|
||||||
);
|
);
|
||||||
DenoError::new(ErrorKind::NotFound, msg).into()
|
DenoError::new(ErrorKind::NotFound, msg).into()
|
||||||
} else if err_kind == ErrorKind::PermissionDenied {
|
|
||||||
let msg = format!(
|
|
||||||
r#"Cannot find module "{}"{} in cache, --cached-only is specified"#,
|
|
||||||
module_url, referrer_suffix
|
|
||||||
);
|
|
||||||
DenoError::new(ErrorKind::PermissionDenied, msg).into()
|
|
||||||
} else {
|
} else {
|
||||||
err
|
err
|
||||||
};
|
};
|
||||||
|
@ -427,9 +429,9 @@ impl SourceFileFetcher {
|
||||||
// We can't fetch remote file - bail out
|
// We can't fetch remote file - bail out
|
||||||
return futures::future::err(
|
return futures::future::err(
|
||||||
std::io::Error::new(
|
std::io::Error::new(
|
||||||
std::io::ErrorKind::PermissionDenied,
|
std::io::ErrorKind::NotFound,
|
||||||
format!(
|
format!(
|
||||||
"cannot find remote file '{}' in cache",
|
"Cannot find remote file '{}' in cache, --cached-only is specified",
|
||||||
module_url.to_string()
|
module_url.to_string()
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
@ -1449,7 +1451,7 @@ mod tests {
|
||||||
.await;
|
.await;
|
||||||
assert!(result.is_err());
|
assert!(result.is_err());
|
||||||
let err = result.err().unwrap();
|
let err = result.err().unwrap();
|
||||||
assert_eq!(err.kind(), ErrorKind::PermissionDenied);
|
assert_eq!(err.kind(), ErrorKind::NotFound);
|
||||||
|
|
||||||
// download and cache file
|
// download and cache file
|
||||||
let result = fetcher_1
|
let result = fetcher_1
|
||||||
|
|
Loading…
Reference in a new issue