summaryrefslogtreecommitdiff
path: root/cli/fmt_errors.rs
diff options
context:
space:
mode:
authorRyan Dahl <ry@tinyclouds.org>2021-04-22 08:30:03 -0400
committerGitHub <noreply@github.com>2021-04-22 08:30:03 -0400
commit21ab4d94c0edca94cb71c5e444f93005074b17f2 (patch)
tree6eba8573efef9003facafc6853bbb717358d8c2d /cli/fmt_errors.rs
parentb3013c1f95c5d3852bebcae76e13baad00925a0b (diff)
fix(#10292): Don't gray-out internal frames (#10293)
Diffstat (limited to 'cli/fmt_errors.rs')
-rw-r--r--cli/fmt_errors.rs97
1 files changed, 27 insertions, 70 deletions
diff --git a/cli/fmt_errors.rs b/cli/fmt_errors.rs
index a54c871b1..9431dab07 100644
--- a/cli/fmt_errors.rs
+++ b/cli/fmt_errors.rs
@@ -1,6 +1,9 @@
// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
//! This mod provides DenoError to unify errors across Deno.
-use crate::colors;
+use crate::colors::cyan;
+use crate::colors::italic_bold;
+use crate::colors::red;
+use crate::colors::yellow;
use deno_core::error::{AnyError, JsError, JsStackFrame};
use std::error::Error;
use std::fmt;
@@ -8,68 +11,29 @@ use std::ops::Deref;
const SOURCE_ABBREV_THRESHOLD: usize = 150;
-fn default_color(s: &str, internal: bool) -> String {
- if internal {
- colors::gray(s).to_string()
- } else {
- s.to_string()
- }
-}
-
-fn cyan(s: &str, internal: bool) -> String {
- if internal {
- colors::gray(s).to_string()
- } else {
- colors::cyan(s).to_string()
- }
-}
-
-fn yellow(s: &str, internal: bool) -> String {
- if internal {
- colors::gray(s).to_string()
- } else {
- colors::yellow(s).to_string()
- }
-}
-
-fn italic_bold(s: &str, internal: bool) -> String {
- if internal {
- colors::italic_bold_gray(s).to_string()
- } else {
- colors::italic_bold(s).to_string()
- }
-}
-
// Keep in sync with `runtime/js/40_error_stack.js`.
pub fn format_location(frame: &JsStackFrame) -> String {
- let internal = frame
+ let _internal = frame
.file_name
.as_ref()
.map_or(false, |f| f.starts_with("deno:"));
if frame.is_native {
- return cyan("native", internal);
+ return cyan("native").to_string();
}
let mut result = String::new();
if let Some(file_name) = &frame.file_name {
- result += &cyan(&file_name, internal);
+ result += &cyan(&file_name).to_string();
} else {
if frame.is_eval {
- result += &(cyan(&frame.eval_origin.as_ref().unwrap(), internal) + ", ");
+ result +=
+ &(cyan(&frame.eval_origin.as_ref().unwrap()).to_string() + ", ");
}
- result += &cyan("<anonymous>", internal);
+ result += &cyan("<anonymous>").to_string();
}
if let Some(line_number) = frame.line_number {
- result += &format!(
- "{}{}",
- default_color(":", internal),
- yellow(&line_number.to_string(), internal)
- );
+ result += &format!("{}{}", ":", yellow(&line_number.to_string()));
if let Some(column_number) = frame.column_number {
- result += &format!(
- "{}{}",
- default_color(":", internal),
- yellow(&column_number.to_string(), internal)
- );
+ result += &format!("{}{}", ":", yellow(&column_number.to_string()));
}
}
result
@@ -77,7 +41,7 @@ pub fn format_location(frame: &JsStackFrame) -> String {
// Keep in sync with `runtime/js/40_error_stack.js`.
fn format_frame(frame: &JsStackFrame) -> String {
- let internal = frame
+ let _internal = frame
.file_name
.as_ref()
.map_or(false, |f| f.starts_with("deno:"));
@@ -85,16 +49,14 @@ fn format_frame(frame: &JsStackFrame) -> String {
!(frame.is_top_level.unwrap_or_default() || frame.is_constructor);
let mut result = String::new();
if frame.is_async {
- result += &colors::gray("async ").to_string();
+ result += "async ";
}
if frame.is_promise_all {
- result += &italic_bold(
- &format!(
- "Promise.all (index {})",
- frame.promise_index.unwrap_or_default().to_string()
- ),
- internal,
- );
+ result += &italic_bold(&format!(
+ "Promise.all (index {})",
+ frame.promise_index.unwrap_or_default().to_string()
+ ))
+ .to_string();
return result;
}
if is_method_call {
@@ -121,26 +83,21 @@ fn format_frame(frame: &JsStackFrame) -> String {
formatted_method += "<anonymous>";
}
}
- result += &italic_bold(&formatted_method, internal);
+ result += &italic_bold(&formatted_method).to_string();
} else if frame.is_constructor {
- result += &colors::gray("new ").to_string();
+ result += "new ";
if let Some(function_name) = &frame.function_name {
- result += &italic_bold(&function_name, internal);
+ result += &italic_bold(&function_name).to_string();
} else {
- result += &cyan("<anonymous>", internal);
+ result += &cyan("<anonymous>").to_string();
}
} else if let Some(function_name) = &frame.function_name {
- result += &italic_bold(&function_name, internal);
+ result += &italic_bold(&function_name).to_string();
} else {
result += &format_location(frame);
return result;
}
- result += &format!(
- " {}{}{}",
- default_color("(", internal),
- format_location(frame),
- default_color(")", internal)
- );
+ result += &format!(" ({})", format_location(frame));
result
}
@@ -218,9 +175,9 @@ fn format_maybe_source_line(
s.push(underline_char);
}
let color_underline = if is_error {
- colors::red(&s).to_string()
+ red(&s).to_string()
} else {
- colors::cyan(&s).to_string()
+ cyan(&s).to_string()
};
let indent = format!("{:indent$}", "", indent = level);