@yuneta/gobj-js 7.22.1 → 7.22.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2551,7 +2551,7 @@
2551
2551
  if (__trace_machine_format__ === 1) trace_machine(sprintf("🔜 %s %s%s %s", event ? event : "", !dst.running ? "!!" : "", gobj_short_name(dst), state.state_name));
2552
2552
  else trace_machine(sprintf("🔃 mach(%s%s), st: %s, ev: %s, from(%s%s)", !dst.running ? "!!" : "", gobj_short_name(dst), state.state_name, event ? event : "", src && !src.running ? "!!" : "", gobj_short_name(src)));
2553
2553
  if (kw) {
2554
- if (tracea > 1) {
2554
+ if (__trace_gobj_ev_kw__(dst)) {
2555
2555
  if (json_object_size(kw)) trace_json(kw);
2556
2556
  }
2557
2557
  }
@@ -2792,7 +2792,7 @@
2792
2792
  json_array_append(subscriber.dl_subscribings, subs);
2793
2793
  if (__trace_gobj_subscriptions__(subscriber) || __trace_gobj_subscriptions__(publisher)) {
2794
2794
  trace_machine(sprintf("💜💜👍 subscribing event '%s', publisher '%s', subscriber %s", event ? event : "", gobj_short_name(publisher), gobj_short_name(subscriber)));
2795
- if (kw) trace_json(kw);
2795
+ if (kw && (__trace_gobj_ev_kw__(subscriber) || __trace_gobj_ev_kw__(publisher))) trace_json(kw);
2796
2796
  }
2797
2797
  if (publisher.gclass.gmt.mt_subscription_added) {
2798
2798
  let result = publisher.gclass.gmt.mt_subscription_added(publisher, subs);
@@ -2932,7 +2932,7 @@
2932
2932
  if (tracea) {
2933
2933
  if (__trace_machine_format__ === 1) trace_machine(sprintf("🔝🔝 %s %s%s %s", event ? event : "", !publisher.running ? "!!" : "", gobj_short_name(publisher), publisher.current_state.state_name));
2934
2934
  else trace_machine(sprintf("🔝🔝 mach(%s%s^%s), st: %s, ev: %s%s%s", !publisher.running ? "!!" : "", gobj_gclass_name(publisher), gobj_name(publisher), publisher.current_state.state_name, "", event ? event : "", ""));
2935
- if (json_object_size(kw)) trace_json(kw);
2935
+ if (__trace_gobj_ev_kw__(publisher) && json_object_size(kw)) trace_json(kw);
2936
2936
  }
2937
2937
  if (publisher.gclass.gmt.mt_publish_event) {
2938
2938
  let topublish = publisher.gclass.gmt.mt_publish_event(publisher, event, kw);
@@ -2981,7 +2981,7 @@
2981
2981
  if (tracea) {
2982
2982
  if (__trace_machine_format__ === 1) trace_machine(sprintf("🔝🔄 %s (%s) %s%s", event ? event : "", event ? event : "", !subscriber.running ? "!!" : "", gobj_short_name(subscriber)));
2983
2983
  else trace_machine(sprintf("🔝🔄 mach(%s%s), st: %s, ev: %s, from(%s%s)", !subscriber.running ? "!!" : "", gobj_short_name(subscriber), gobj_current_state(subscriber), event ? event : "", publisher && !publisher.running ? "!!" : "", gobj_short_name(publisher)));
2984
- if (json_object_size(kw2publish)) trace_json(kw2publish);
2984
+ if (__trace_gobj_ev_kw__(publisher) && json_object_size(kw2publish)) trace_json(kw2publish);
2985
2985
  }
2986
2986
  let ret_ = gobj_send_event(subscriber, event, kw2publish, publisher);
2987
2987
  if (ret_ < 0 && subs_flag & subs_flag_t.__own_event__) {
@@ -3069,8 +3069,38 @@
3069
3069
  var f_info = _console.info;
3070
3070
  var f_debug = _console.debug;
3071
3071
  var __log_callback__ = null;
3072
+ var LOG_BACKLOG_MAX = 600;
3073
+ var __log_backlog__ = [];
3074
+ function keep_in_backlog(level, msg, hora) {
3075
+ let m = msg;
3076
+ if (level === "json") try {
3077
+ m = JSON.stringify(msg);
3078
+ } catch (e) {
3079
+ m = String(msg);
3080
+ }
3081
+ __log_backlog__.push([
3082
+ level,
3083
+ m,
3084
+ hora
3085
+ ]);
3086
+ if (__log_backlog__.length > LOG_BACKLOG_MAX) __log_backlog__.shift();
3087
+ }
3072
3088
  function set_log_callback(fn) {
3073
- __log_callback__ = typeof fn === "function" ? fn : null;
3089
+ fn = typeof fn === "function" ? fn : null;
3090
+ if (fn && fn !== __log_callback__) {
3091
+ __log_callback__ = fn;
3092
+ for (const [level, m, hora] of __log_backlog__.slice()) {
3093
+ let msg = m;
3094
+ if (level === "json") try {
3095
+ msg = JSON.parse(m);
3096
+ } catch (e) {
3097
+ msg = m;
3098
+ }
3099
+ __deliver_log__(level, msg, hora);
3100
+ }
3101
+ return;
3102
+ }
3103
+ __log_callback__ = fn;
3074
3104
  }
3075
3105
  var __console_output_enabled__ = true;
3076
3106
  function set_console_log_enabled(enabled) {
@@ -3091,6 +3121,11 @@
3091
3121
  }
3092
3122
  var __in_log_callback__ = false;
3093
3123
  function emit_log_callback(level, msg, hora) {
3124
+ if (__in_log_callback__) return;
3125
+ keep_in_backlog(level, msg, hora);
3126
+ __deliver_log__(level, msg, hora);
3127
+ }
3128
+ function __deliver_log__(level, msg, hora) {
3094
3129
  if (__log_callback__ && !__in_log_callback__) {
3095
3130
  __in_log_callback__ = true;
3096
3131
  try {