1
0
Fork 0
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:
Nayeem Rahman 2020-02-12 16:02:34 +00:00 committed by GitHub
parent e6167c7813
commit 3563ab4c53
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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