@yuneta/gobj-js 7.7.1 → 7.7.3

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.
@@ -3623,7 +3623,7 @@ var gobjJs = (function(exports) {
3623
3623
  if (is_object(kw)) new_dict = kw;
3624
3624
  else if (is_array(kw)) for (let i = 0; i < kw.length; i++) {
3625
3625
  let kv = kw[i];
3626
- let id = kw_get_str(kv, "id", null, false);
3626
+ let id = kw_get_str(gobj, kv, "id", "", 0);
3627
3627
  if (!empty_string(id)) new_dict[id] = kv;
3628
3628
  }
3629
3629
  else log_error(`${gobj_short_name(gobj)} kwid_new_dict: data type unknown`);
@@ -4914,6 +4914,7 @@ var gobjJs = (function(exports) {
4914
4914
  * is_writable // field writable (no readonly)
4915
4915
  * default_value
4916
4916
  * placeholder
4917
+ * fkey // fkey mapping {topic_name: hook_name}, null if none
4917
4918
  * ]
4918
4919
  *
4919
4920
  * The template is recursive, in values you can set dictionaries, or arrays,
@@ -4983,7 +4984,8 @@ var gobjJs = (function(exports) {
4983
4984
  is_hidden: false,
4984
4985
  default_value: col.default,
4985
4986
  placeholder: col.placeholder,
4986
- fillspace: col.fillspace || 4
4987
+ fillspace: col.fillspace || 4,
4988
+ fkey: col.fkey || null
4987
4989
  };
4988
4990
  if (!col.flag) return field_desc;
4989
4991
  for (let i = 0; i < col.flag.length; i++) {
@@ -5029,7 +5031,8 @@ var gobjJs = (function(exports) {
5029
5031
  is_writable: false,
5030
5032
  is_hidden: false,
5031
5033
  default_value: void 0,
5032
- placeholder: void 0
5034
+ placeholder: void 0,
5035
+ fkey: null
5033
5036
  };
5034
5037
  if (is_string(value)) {
5035
5038
  let values = value.split(".");
@@ -5073,7 +5076,9 @@ var gobjJs = (function(exports) {
5073
5076
  let new_record = {};
5074
5077
  if (!kw) kw = {};
5075
5078
  Object.entries(template).forEach(([field, col]) => {
5076
- new_record[field] = kw_get_dict_value(null, kw, field, kw_get_dict_value(col, "default"));
5079
+ let default_value;
5080
+ if (is_object(col)) default_value = col.default;
5081
+ new_record[field] = kw_get_dict_value(null, kw, field, default_value);
5077
5082
  });
5078
5083
  return new_record;
5079
5084
  }
@@ -5590,7 +5595,7 @@ var gobjJs = (function(exports) {
5590
5595
  ***************************************************************/
5591
5596
  function mt_subscription_added(gobj, subs) {
5592
5597
  let priv = gobj.priv;
5593
- if (gobj_current_state(gobj) !== "ST_SESSION") return 0;
5598
+ if (gobj_current_state(gobj) !== "ST_SESSION" || !priv.websocket) return 0;
5594
5599
  if (priv.inside_on_open) return 0;
5595
5600
  return send_remote_subscription(gobj, subs);
5596
5601
  }
@@ -5599,7 +5604,7 @@ var gobjJs = (function(exports) {
5599
5604
  ***************************************************************/
5600
5605
  function mt_subscription_deleted(gobj, subs) {
5601
5606
  let priv = gobj.priv;
5602
- if (gobj_current_state(gobj) !== "ST_SESSION") return 0;
5607
+ if (gobj_current_state(gobj) !== "ST_SESSION" || !priv.websocket) return 0;
5603
5608
  if (priv.inside_on_open) return 0;
5604
5609
  if (empty_string(subs.event)) return 0;
5605
5610
  let kw = {};
@@ -5720,6 +5725,10 @@ var gobjJs = (function(exports) {
5720
5725
  trace_ievent_callback(prefix, iev, 1, size);
5721
5726
  } else trace_inter_event(gobj, prefix, iev);
5722
5727
  }
5728
+ if (!priv.websocket || priv.websocket.readyState !== WebSocket.OPEN) {
5729
+ log_warning(`${gobj_short_name(gobj)}: send_iev(): websocket not open, message lost`);
5730
+ return -1;
5731
+ }
5723
5732
  try {
5724
5733
  priv.websocket.send(msg);
5725
5734
  } catch (e) {