Skip to content

Commit 1dd5817

Browse files
authored
fix(ext): handle log level correctly (#599)
1 parent d3b9cee commit 1dd5817

File tree

3 files changed

+22
-7
lines changed

3 files changed

+22
-7
lines changed

ext/event_worker/events.rs

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use std::convert::Infallible;
2+
13
use base_mem_check::MemCheckState;
24
use enum_as_inner::EnumAsInner;
35
use serde::Deserialize;
@@ -50,14 +52,30 @@ pub struct LogEvent {
5052
pub level: LogLevel,
5153
}
5254

53-
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
55+
#[derive(Serialize, Deserialize, Debug, Default, PartialEq, Eq)]
56+
#[repr(u8)]
5457
pub enum LogLevel {
58+
#[default]
5559
Debug,
5660
Info,
5761
Warning,
5862
Error,
5963
}
6064

65+
impl TryFrom<u8> for LogLevel {
66+
type Error = Infallible;
67+
68+
fn try_from(value: u8) -> Result<Self, Infallible> {
69+
match value {
70+
0 => Ok(Self::Debug),
71+
1 => Ok(Self::Info),
72+
2 => Ok(Self::Warning),
73+
3 => Ok(Self::Error),
74+
_ => Ok(Self::Debug),
75+
}
76+
}
77+
}
78+
6179
#[derive(Serialize, Deserialize, Debug, EnumAsInner)]
6280
pub enum WorkerEvents {
6381
Boot(BootEvent),

ext/event_worker/js_interceptors.rs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,11 @@ use tokio::sync::mpsc;
1212
fn op_user_worker_log(
1313
state: &mut OpState,
1414
#[string] msg: &str,
15-
is_err: bool,
15+
#[smi] level: i32,
1616
) -> Result<(), AnyError> {
1717
let maybe_tx =
1818
state.try_borrow::<mpsc::UnboundedSender<WorkerEventWithMetadata>>();
19-
let mut level = LogLevel::Info;
20-
if is_err {
21-
level = LogLevel::Error;
22-
}
19+
let level = LogLevel::try_from(level as u8).unwrap_or_default();
2320

2421
if let Some(tx) = maybe_tx {
2522
let event_metadata = state

ext/runtime/js/bootstrap.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -595,7 +595,7 @@ globalThis.bootstrapSBEdge = (opts, ctx) => {
595595
ObjectDefineProperties(globalThis, {
596596
console: nonEnumerable(
597597
new console.Console((msg, level) => {
598-
return ops.op_user_worker_log(msg, level > 1);
598+
return ops.op_user_worker_log(msg, level);
599599
}),
600600
),
601601
});

0 commit comments

Comments
 (0)