@yuneta/gobj-js 7.22.1 → 7.25.0

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.
@@ -2549,7 +2549,7 @@ var gobjJs = (function(exports) {
2549
2549
  if (__trace_machine_format__ === 1) trace_machine(sprintf("🔜 %s %s%s %s", event ? event : "", !dst.running ? "!!" : "", gobj_short_name(dst), state.state_name));
2550
2550
  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)));
2551
2551
  if (kw) {
2552
- if (tracea > 1) {
2552
+ if (__trace_gobj_ev_kw__(dst)) {
2553
2553
  if (json_object_size(kw)) trace_json(kw);
2554
2554
  }
2555
2555
  }
@@ -2790,7 +2790,7 @@ var gobjJs = (function(exports) {
2790
2790
  json_array_append(subscriber.dl_subscribings, subs);
2791
2791
  if (__trace_gobj_subscriptions__(subscriber) || __trace_gobj_subscriptions__(publisher)) {
2792
2792
  trace_machine(sprintf("💜💜👍 subscribing event '%s', publisher '%s', subscriber %s", event ? event : "", gobj_short_name(publisher), gobj_short_name(subscriber)));
2793
- if (kw) trace_json(kw);
2793
+ if (kw && (__trace_gobj_ev_kw__(subscriber) || __trace_gobj_ev_kw__(publisher))) trace_json(kw);
2794
2794
  }
2795
2795
  if (publisher.gclass.gmt.mt_subscription_added) {
2796
2796
  let result = publisher.gclass.gmt.mt_subscription_added(publisher, subs);
@@ -2930,7 +2930,7 @@ var gobjJs = (function(exports) {
2930
2930
  if (tracea) {
2931
2931
  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));
2932
2932
  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 : "", ""));
2933
- if (json_object_size(kw)) trace_json(kw);
2933
+ if (__trace_gobj_ev_kw__(publisher) && json_object_size(kw)) trace_json(kw);
2934
2934
  }
2935
2935
  if (publisher.gclass.gmt.mt_publish_event) {
2936
2936
  let topublish = publisher.gclass.gmt.mt_publish_event(publisher, event, kw);
@@ -2979,7 +2979,7 @@ var gobjJs = (function(exports) {
2979
2979
  if (tracea) {
2980
2980
  if (__trace_machine_format__ === 1) trace_machine(sprintf("🔝🔄 %s (%s) %s%s", event ? event : "", event ? event : "", !subscriber.running ? "!!" : "", gobj_short_name(subscriber)));
2981
2981
  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)));
2982
- if (json_object_size(kw2publish)) trace_json(kw2publish);
2982
+ if (__trace_gobj_ev_kw__(publisher) && json_object_size(kw2publish)) trace_json(kw2publish);
2983
2983
  }
2984
2984
  let ret_ = gobj_send_event(subscriber, event, kw2publish, publisher);
2985
2985
  if (ret_ < 0 && subs_flag & subs_flag_t.__own_event__) {
@@ -3067,8 +3067,38 @@ var gobjJs = (function(exports) {
3067
3067
  var f_info = _console.info;
3068
3068
  var f_debug = _console.debug;
3069
3069
  var __log_callback__ = null;
3070
+ var LOG_BACKLOG_MAX = 600;
3071
+ var __log_backlog__ = [];
3072
+ function keep_in_backlog(level, msg, hora) {
3073
+ let m = msg;
3074
+ if (level === "json") try {
3075
+ m = JSON.stringify(msg);
3076
+ } catch (e) {
3077
+ m = String(msg);
3078
+ }
3079
+ __log_backlog__.push([
3080
+ level,
3081
+ m,
3082
+ hora
3083
+ ]);
3084
+ if (__log_backlog__.length > LOG_BACKLOG_MAX) __log_backlog__.shift();
3085
+ }
3070
3086
  function set_log_callback(fn) {
3071
- __log_callback__ = typeof fn === "function" ? fn : null;
3087
+ fn = typeof fn === "function" ? fn : null;
3088
+ if (fn && fn !== __log_callback__) {
3089
+ __log_callback__ = fn;
3090
+ for (const [level, m, hora] of __log_backlog__.slice()) {
3091
+ let msg = m;
3092
+ if (level === "json") try {
3093
+ msg = JSON.parse(m);
3094
+ } catch (e) {
3095
+ msg = m;
3096
+ }
3097
+ __deliver_log__(level, msg, hora);
3098
+ }
3099
+ return;
3100
+ }
3101
+ __log_callback__ = fn;
3072
3102
  }
3073
3103
  var __console_output_enabled__ = true;
3074
3104
  function set_console_log_enabled(enabled) {
@@ -3089,6 +3119,11 @@ var gobjJs = (function(exports) {
3089
3119
  }
3090
3120
  var __in_log_callback__ = false;
3091
3121
  function emit_log_callback(level, msg, hora) {
3122
+ if (__in_log_callback__) return;
3123
+ keep_in_backlog(level, msg, hora);
3124
+ __deliver_log__(level, msg, hora);
3125
+ }
3126
+ function __deliver_log__(level, msg, hora) {
3092
3127
  if (__log_callback__ && !__in_log_callback__) {
3093
3128
  __in_log_callback__ = true;
3094
3129
  try {