1#![cfg_attr(not(feature = "diagnostics"), allow(unused))]
2#![doc = include_str!("../README.md")]
3
4use debug_correlation_id::DebugCorrelationId;
5use nameth::NamedType as _;
6
7use self::owned_closure::XOwnedClosure;
8use self::prelude::OrElseLog;
9
10mod attribute;
11mod debug_correlation_id;
12mod element;
13mod key;
14mod mock_diagnostics;
15mod node;
16pub mod owned_closure;
17pub mod prelude;
18mod signal;
19mod string;
20mod template;
21mod utils;
22
23#[cfg(feature = "diagnostics")]
27pub fn setup_logging() {
28 use tracing_subscriber_wasm::MakeConsoleWriter;
29
30 tracing_subscriber::fmt()
31 .with_max_level(crate::prelude::diagnostics::Level::TRACE)
32 .with_writer(MakeConsoleWriter::default())
33 .without_time()
34 .with_ansi(false)
35 .with_line_number(true)
36 .with_file(true)
37 .with_target(false)
38 .init();
39 let version = "1.0";
40 crate::prelude::diagnostics::trace!(version, "Setting logging: TRACE");
41 crate::prelude::diagnostics::debug!(version, "Setting logging: DEBUG");
42 crate::prelude::diagnostics::info!(version, "Setting logging: INFO");
43 crate::prelude::diagnostics::info!(
44 "{}: {:?}",
45 DebugCorrelationId::<&str>::type_name(),
46 DebugCorrelationId::new(|| "here")
47 );
48
49 if cfg!(feature = "concise-traces") {
51 let closure = XOwnedClosure::new(|self_drop| {
52 move || {
53 let _self_drop = &self_drop;
54 web_sys::console::clear();
55 }
56 });
57 let window = web_sys::window().or_throw("window");
58 window
59 .set_interval_with_callback_and_timeout_and_arguments_0(
60 &closure.as_function(),
61 15 * 60 * 1000,
62 )
63 .or_throw("set_interval");
64 }
65}
66
67#[cfg(not(feature = "diagnostics"))]
68pub fn setup_logging() {}