Brr.ConsoleBrowser console.
See Console. Take a few minutes to understand this.
val get : unit -> tget () is the console object on which the functions below act. Initially this is G.console.
val set : t -> unitset o sets the console object to o.
clear () clears the console.
type 'a msgr = 'a -> msgThe type for functions turning values of type 'a into log messages.
val msg : 'a msgrmsg v is [v].
type log = msg -> unitThe type for log functions.
Log messages rebind OCaml's list syntax. This allows to write heterogeneous logging statements concisely.
let () = Console.(log [1; 2.; true; Jv.true'; str "🐫"; G.navigator])The console logs JavaScript values. For OCaml values this means that their js_of_ocaml representation is logged; see the FFI manual for details. Most OCaml values behind Brr types are however direct JavaScript values and logging them as is will be valuable. For other values you can use the str function which invokes the JavaScript toString method on the value. It works on OCaml strings and is mostly equivalent and shorter than calling Jstr.v before logging them.
In the JavaScript console API, if the first argument is a JavaScript string it can have formatting specifications. Just remember this should be a JavaScript string, so wrap OCaml literals by str or Jstr.v:
let () = Console.(log [str "This is:\n%o\n the navigator"; G.navigator])val str : 'a -> Jstr.tstr v is the result of invoking the JavaScript toString method on the representation of v. If v is Jv.null and Jv.undefined a string representing them is directly returned.
Result logginglog_result ~ok ~error r is r but logs r using log and ok to format Ok v and error and error for Error
e. ok defaults to [v] and error to [str e].
log_if_error ~l ~error_msg ~use r is v if r is Ok v and use if r is Error e. In this case e is logged with l (defaults to error) and error_msg (defaults to str e).
log_if_error' is log_if_error wrapped by Result.ok.
val trace : logtrace m logs m with no specific level but with a stack trace, like error and warn do.
val table : ?cols:Jstr.t list -> 'a -> unittable v outputs v as tabular data. If cols is specified only the specified properties are printed.
val group : ?closed:bool -> loggroup ~closed msg logs msg and pushes a new inline group in the console. This indents messages until group_end is called. If closed is true (defaults to false) the group's content is hidden behind a disclosure button.
group_end () pops the last inline group.
val count : Jstr.t -> unitcount label logs label with the number of times count label was called.
time_log label msg reports the timer value of label with msg appended to the report.