Skip to content

Commit 338a481

Browse files
committed
Move JS console under js_lib
Signed-off-by: Didier Wenzek <[email protected]>
1 parent 0f0f78a commit 338a481

File tree

3 files changed

+52
-54
lines changed

3 files changed

+52
-54
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
use crate::js_script::JsonValue;
2+
use rquickjs::class::Trace;
3+
use rquickjs::function::Rest;
4+
use rquickjs::Ctx;
5+
use rquickjs::JsLifetime;
6+
use rquickjs::Result;
7+
use rquickjs::Value;
8+
use std::fmt::Write;
9+
10+
#[derive(Clone, Trace, JsLifetime)]
11+
#[rquickjs::class(frozen)]
12+
struct Console {}
13+
14+
pub fn init(ctx: &Ctx<'_>) {
15+
let console = Console {};
16+
let _ = ctx.globals().set("console", console);
17+
}
18+
19+
impl Console {
20+
fn print(&self, _level: tracing::Level, values: Rest<Value<'_>>) -> Result<()> {
21+
let mut message = String::new();
22+
for (i, value) in values.0.into_iter().enumerate() {
23+
if i > 0 {
24+
let _ = write!(&mut message, ", ");
25+
}
26+
let _ = write!(&mut message, "{}", JsonValue::display(value));
27+
}
28+
eprintln!("JavaScript.Console: {message}");
29+
Ok(())
30+
}
31+
}
32+
33+
#[rquickjs::methods]
34+
impl Console {
35+
fn debug(&self, values: Rest<Value<'_>>) -> Result<()> {
36+
self.print(tracing::Level::DEBUG, values)
37+
}
38+
39+
fn log(&self, values: Rest<Value<'_>>) -> Result<()> {
40+
self.print(tracing::Level::INFO, values)
41+
}
42+
43+
fn warn(&self, values: Rest<Value<'_>>) -> Result<()> {
44+
self.print(tracing::Level::WARN, values)
45+
}
46+
47+
fn error(&self, values: Rest<Value<'_>>) -> Result<()> {
48+
self.print(tracing::Level::ERROR, values)
49+
}
50+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1+
pub mod console;
12
pub mod text_decoder;
23
pub mod text_encoder;

crates/extensions/tedge_flows/src/js_runtime.rs

Lines changed: 1 addition & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ impl JsWorker {
175175

176176
async fn run(mut self) {
177177
rquickjs::async_with!(self.context => |ctx| {
178-
console::init(&ctx);
178+
js_lib::console::init(&ctx);
179179
js_lib::text_decoder::init(&ctx);
180180
js_lib::text_encoder::init(&ctx);
181181
let mut modules = JsModules::new();
@@ -287,56 +287,3 @@ impl LoadError {
287287
}
288288
}
289289
}
290-
291-
mod console {
292-
use crate::js_script::JsonValue;
293-
use rquickjs::class::Trace;
294-
use rquickjs::function::Rest;
295-
use rquickjs::Ctx;
296-
use rquickjs::JsLifetime;
297-
use rquickjs::Result;
298-
use rquickjs::Value;
299-
use std::fmt::Write;
300-
301-
#[derive(Clone, Trace, JsLifetime)]
302-
#[rquickjs::class(frozen)]
303-
struct Console {}
304-
305-
pub fn init(ctx: &Ctx<'_>) {
306-
let console = Console {};
307-
let _ = ctx.globals().set("console", console);
308-
}
309-
310-
impl Console {
311-
fn print(&self, _level: tracing::Level, values: Rest<Value<'_>>) -> Result<()> {
312-
let mut message = String::new();
313-
for (i, value) in values.0.into_iter().enumerate() {
314-
if i > 0 {
315-
let _ = write!(&mut message, ", ");
316-
}
317-
let _ = write!(&mut message, "{}", JsonValue::display(value));
318-
}
319-
eprintln!("JavaScript.Console: {message}");
320-
Ok(())
321-
}
322-
}
323-
324-
#[rquickjs::methods]
325-
impl Console {
326-
fn debug(&self, values: Rest<Value<'_>>) -> Result<()> {
327-
self.print(tracing::Level::DEBUG, values)
328-
}
329-
330-
fn log(&self, values: Rest<Value<'_>>) -> Result<()> {
331-
self.print(tracing::Level::INFO, values)
332-
}
333-
334-
fn warn(&self, values: Rest<Value<'_>>) -> Result<()> {
335-
self.print(tracing::Level::WARN, values)
336-
}
337-
338-
fn error(&self, values: Rest<Value<'_>>) -> Result<()> {
339-
self.print(tracing::Level::ERROR, values)
340-
}
341-
}
342-
}

0 commit comments

Comments
 (0)