Skip to content

Commit

Permalink
refactor: use OpError instead of ErrBox for errors in ops (denoland#4058
Browse files Browse the repository at this point in the history
)

To better reflect changes in error types in JS from denoland#3662 this PR changes 
default error type used in ops from "ErrBox" to "OpError".

"OpError" is a type that can be sent over to JSON; it has all 
information needed to construct error in JavaScript. That
made "GetErrorKind" trait useless and so it was removed altogether.

To provide compatibility with previous use of "ErrBox" an implementation of
"From<ErrBox> for OpError" was added, however, it is an escape hatch and
ops implementors should strive to use "OpError" directly.
  • Loading branch information
bartlomieju committed Feb 23, 2020
1 parent 45eb2f9 commit 4e1abb4
Show file tree
Hide file tree
Showing 38 changed files with 794 additions and 836 deletions.
5 changes: 4 additions & 1 deletion cli/compilers/ts.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ use crate::file_fetcher::SourceFile;
use crate::file_fetcher::SourceFileFetcher;
use crate::global_state::GlobalState;
use crate::msg;
use crate::op_error::OpError;
use crate::ops::JsonResult;
use crate::source_maps::SourceMapGetter;
use crate::startup_data;
Expand Down Expand Up @@ -633,7 +634,9 @@ async fn execute_in_thread_json(
req_msg: Buf,
global_state: GlobalState,
) -> JsonResult {
let msg = execute_in_thread(global_state, req_msg).await?;
let msg = execute_in_thread(global_state, req_msg)
.await
.map_err(|e| OpError::other(e.to_string()))?;
let json_str = std::str::from_utf8(&msg).unwrap();
Ok(json!(json_str))
}
Expand Down
Loading

0 comments on commit 4e1abb4

Please sign in to comment.