diff --git a/runtime/ops/fs.rs b/runtime/ops/fs.rs index f6b9a58ebfd97c..b09b6387db91f8 100644 --- a/runtime/ops/fs.rs +++ b/runtime/ops/fs.rs @@ -2018,7 +2018,13 @@ fn op_readfile_sync( state .borrow_mut::() .check_read(path, "Deno.readFileSync()")?; - Ok(std::fs::read(path)?.into()) + let err_mapper = |err: Error| { + Error::new( + err.kind(), + format!("{}, readfile '{}'", err, path.display()), + ) + }; + Ok(std::fs::read(path).map_err(err_mapper)?.into()) } #[op] @@ -2030,7 +2036,15 @@ fn op_readfile_text_sync( state .borrow_mut::() .check_read(path, "Deno.readTextFileSync()")?; - Ok(string_from_utf8_lossy(std::fs::read(path)?)) + let err_mapper = |err: Error| { + Error::new( + err.kind(), + format!("{}, readfile '{}'", err, path.display()), + ) + }; + Ok(string_from_utf8_lossy( + std::fs::read(path).map_err(err_mapper)?, + )) } #[op] @@ -2048,7 +2062,17 @@ async fn op_readfile_async( } let fut = tokio::task::spawn_blocking(move || { let path = Path::new(&path); - Ok(std::fs::read(path).map(ZeroCopyBuf::from)?) + let err_mapper = |err: Error| { + Error::new( + err.kind(), + format!("{}, readfile '{}'", err, path.display()), + ) + }; + Ok( + std::fs::read(path) + .map_err(err_mapper) + .map(ZeroCopyBuf::from)?, + ) }); if let Some(cancel_rid) = cancel_rid { let cancel_handle = state @@ -2077,7 +2101,15 @@ async fn op_readfile_text_async( } let fut = tokio::task::spawn_blocking(move || { let path = Path::new(&path); - Ok(string_from_utf8_lossy(std::fs::read(path)?)) + let err_mapper = |err: Error| { + Error::new( + err.kind(), + format!("{}, readfile '{}'", err, path.display()), + ) + }; + Ok(string_from_utf8_lossy( + std::fs::read(path).map_err(err_mapper)?, + )) }); if let Some(cancel_rid) = cancel_rid { let cancel_handle = state