@yuneta/gobj-js 7.10.0 → 7.12.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.
@@ -87,9 +87,7 @@ function sprintf_format(parse_tree, argv) {
87
87
  case "x":
88
88
  arg = (parseInt(arg, 10) >>> 0).toString(16);
89
89
  break;
90
- case "X":
91
- arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase();
92
- break;
90
+ case "X": arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase();
93
91
  }
94
92
  if (re.json.test(ph.type)) output += arg;
95
93
  else {
@@ -777,9 +775,7 @@ function set_default(gobj, sdata, it) {
777
775
  }
778
776
  else jn_value = svalue;
779
777
  break;
780
- case data_type_t.DTP_POINTER:
781
- jn_value = svalue;
782
- break;
778
+ case data_type_t.DTP_POINTER: jn_value = svalue;
783
779
  }
784
780
  if (jn_value === void 0) {
785
781
  log_error(`default_value WRONG, it: ${it.name}, value: ${it.default_value}`);
@@ -849,9 +845,7 @@ function json2item(gobj, sdata, it, jn_value_) {
849
845
  return -1;
850
846
  }
851
847
  break;
852
- case data_type_t.DTP_POINTER:
853
- jn_value2 = jn_value_;
854
- break;
848
+ case data_type_t.DTP_POINTER: jn_value2 = jn_value_;
855
849
  }
856
850
  if (jn_value2 === void 0) log_error(`${gobj_short_name(gobj)}: attr undefined: ${it.name}`);
857
851
  sdata[it.name] = jn_value2;
@@ -1130,6 +1124,7 @@ function gclass_find_by_name(gclass_name, verbose) {
1130
1124
  } catch (e) {}
1131
1125
  if (!gclass) {
1132
1126
  if (verbose) log_error(`gclass not found: ${gclass_name}`);
1127
+ return null;
1133
1128
  }
1134
1129
  return gclass;
1135
1130
  }
@@ -1154,8 +1149,8 @@ function gobj_default_service() {
1154
1149
  function gobj_find_service(service_name, verbose) {
1155
1150
  service_name = service_name.toLowerCase();
1156
1151
  let service_gobj = __jn_services__[service_name];
1157
- if (!service_gobj && verbose) {
1158
- log_error(`gobj service not found: ${service_name}`);
1152
+ if (!service_gobj) {
1153
+ if (verbose) log_error(`gobj service not found: ${service_name}`);
1159
1154
  return null;
1160
1155
  }
1161
1156
  return service_gobj;
@@ -1571,12 +1566,14 @@ function gobj_play(gobj) {
1571
1566
  log_error(`${gobj_short_name(gobj)}: GObj DISABLED`);
1572
1567
  return -1;
1573
1568
  }
1574
- if (!gobj_is_running(gobj)) if (!(gobj.gclass.gclass_flag & gclass_flag_t.gcflag_required_start_to_play)) {
1575
- log_warning(`${gobj_short_name(gobj)}: GObj playing without previous start`);
1576
- gobj_start(gobj);
1577
- } else {
1578
- log_error(`${gobj_short_name(gobj)}: Cannot play, start not done`);
1579
- return -1;
1569
+ if (!gobj_is_running(gobj)) {
1570
+ if (!(gobj.gclass.gclass_flag & gclass_flag_t.gcflag_required_start_to_play)) {
1571
+ log_warning(`${gobj_short_name(gobj)}: GObj playing without previous start`);
1572
+ gobj_start(gobj);
1573
+ } else {
1574
+ log_error(`${gobj_short_name(gobj)}: Cannot play, start not done`);
1575
+ return -1;
1576
+ }
1580
1577
  }
1581
1578
  if (__trace_gobj_start_stop__(gobj)) trace_machine(sprintf("⏯ ⏯ play: %s", gobj_full_name(gobj)));
1582
1579
  gobj.playing = true;
@@ -2681,7 +2678,7 @@ function gobj_subscribe_event(publisher, event, kw, subscriber) {
2681
2678
  log_error(`subscriber NULL: ev ${event}`);
2682
2679
  return 0;
2683
2680
  }
2684
- const IGNORED_KEYS = new Set([
2681
+ const IGNORED_KEYS = /* @__PURE__ */ new Set([
2685
2682
  "__config__",
2686
2683
  "__global__",
2687
2684
  "__local__",
@@ -2737,7 +2734,7 @@ function gobj_unsubscribe_event(publisher, event, kw, subscriber) {
2737
2734
  log_error(`subscriber NULL: ev ${event}`);
2738
2735
  return 0;
2739
2736
  }
2740
- const IGNORED_KEYS = new Set([
2737
+ const IGNORED_KEYS = /* @__PURE__ */ new Set([
2741
2738
  "__config__",
2742
2739
  "__global__",
2743
2740
  "__local__",
@@ -2931,9 +2928,10 @@ function gobj_command(gobj, command, kw, src) {
2931
2928
  if (tracea > 1) trace_json(kw);
2932
2929
  }
2933
2930
  if (gobj.gclass.gmt.mt_command_parser) return gobj.gclass.gmt.mt_command_parser(gobj, command, kw, src);
2934
- if (gobj.gclass.command_table) if (__global_command_parser_fn__) return __global_command_parser_fn__(gobj, command, kw, src);
2935
- else return build_command_response(gobj, -1, sprintf("%s: global command parser not available", gobj_short_name(gobj)), 0, 0);
2936
- else return build_command_response(gobj, -1, sprintf("%s: command table not available", gobj_short_name(gobj)), 0, 0);
2931
+ if (gobj.gclass.command_table) {
2932
+ if (__global_command_parser_fn__) return __global_command_parser_fn__(gobj, command, kw, src);
2933
+ else return build_command_response(gobj, -1, sprintf("%s: global command parser not available", gobj_short_name(gobj)), 0, 0);
2934
+ } else return build_command_response(gobj, -1, sprintf("%s: command table not available", gobj_short_name(gobj)), 0, 0);
2937
2935
  }
2938
2936
  /************************************************************
2939
2937
  * Exec gobj stats. Return a webix
@@ -3040,22 +3038,26 @@ function format_log(format) {
3040
3038
  function log_error(format) {
3041
3039
  let msg = format_log(format);
3042
3040
  let hora = current_timestamp();
3043
- if (f_error) if (f_error === _console.error) {
3044
- if (__console_output_enabled__) f_error("%c" + hora + " ERROR: " + String(msg), "color:red");
3045
- } else {
3046
- if (__console_output_enabled__) _console.error("%c" + hora + " ERROR: " + String(msg), "color:red");
3047
- f_error(`${hora} ERROR: ${String(msg)}`);
3041
+ if (f_error) {
3042
+ if (f_error === _console.error) {
3043
+ if (__console_output_enabled__) f_error("%c" + hora + " ERROR: " + String(msg), "color:red");
3044
+ } else {
3045
+ if (__console_output_enabled__) _console.error("%c" + hora + " ERROR: " + String(msg), "color:red");
3046
+ f_error(`${hora} ERROR: ${String(msg)}`);
3047
+ }
3048
3048
  }
3049
3049
  emit_log_callback("error", msg, hora);
3050
3050
  }
3051
3051
  function log_warning(format) {
3052
3052
  let msg = format_log(format);
3053
3053
  let hora = current_timestamp();
3054
- if (f_warning) if (f_warning === _console.warn) {
3055
- if (__console_output_enabled__) f_warning("%c" + hora + " WARNING: " + String(msg), "color:yellow");
3056
- } else {
3057
- if (__console_output_enabled__) _console.warn("%c" + hora + " WARNING: " + String(msg), "color:yellow");
3058
- f_warning(`${hora} WARNING: ${String(msg)}`);
3054
+ if (f_warning) {
3055
+ if (f_warning === _console.warn) {
3056
+ if (__console_output_enabled__) f_warning("%c" + hora + " WARNING: " + String(msg), "color:yellow");
3057
+ } else {
3058
+ if (__console_output_enabled__) _console.warn("%c" + hora + " WARNING: " + String(msg), "color:yellow");
3059
+ f_warning(`${hora} WARNING: ${String(msg)}`);
3060
+ }
3059
3061
  }
3060
3062
  emit_log_callback("warning", msg, hora);
3061
3063
  }
@@ -4091,10 +4093,12 @@ function list2options(list, field_id, field_value) {
4091
4093
  vv["id"] = field_id;
4092
4094
  vv["value"] = v[field_id];
4093
4095
  } else {
4094
- if (!kw_has_key(v, field_value)) if (json_size(v) > 0) field_value = Object.keys(v)[0];
4095
- else {
4096
- log_error("list2options(): object without field value: " + field_value);
4097
- continue;
4096
+ if (!kw_has_key(v, field_value)) {
4097
+ if (json_size(v) > 0) field_value = Object.keys(v)[0];
4098
+ else {
4099
+ log_error("list2options(): object without field value: " + field_value);
4100
+ continue;
4101
+ }
4098
4102
  }
4099
4103
  vv["id"] = v[field_id];
4100
4104
  vv["value"] = v[field_value];
@@ -4410,13 +4414,15 @@ function jdb_update(jdb, topic_name, path, kw) {
4410
4414
  if (is_object(v)) v = kw_get_dict_value(null, v, jdb.hook, [], 1);
4411
4415
  v = _jdb_get(v, null, id, false);
4412
4416
  }
4413
- if (ids.length === 0 && v) if (is_array(v)) v.push(kw);
4414
- else if (v["id"] === kw["id"]) Object.assign(v, kw);
4415
- else {
4416
- let v_ = kw_get_dict_value(null, v, jdb.hook, [], 1);
4417
- let v__ = _jdb_get(v_, jdb.hook, kw["id"], false);
4418
- if (v__) Object.assign(v__, kw);
4419
- else v_.push(kw);
4417
+ if (ids.length === 0 && v) {
4418
+ if (is_array(v)) v.push(kw);
4419
+ else if (v["id"] === kw["id"]) Object.assign(v, kw);
4420
+ else {
4421
+ let v_ = kw_get_dict_value(null, v, jdb.hook, [], 1);
4422
+ let v__ = _jdb_get(v_, jdb.hook, kw["id"], false);
4423
+ if (v__) Object.assign(v__, kw);
4424
+ else v_.push(kw);
4425
+ }
4420
4426
  }
4421
4427
  return topic;
4422
4428
  }
@@ -4442,13 +4448,15 @@ function jdb_delete(jdb, topic_name, path, kw) {
4442
4448
  if (is_object(v)) v = kw_get_dict_value(null, v, jdb.hook, null, 0);
4443
4449
  v = _jdb_get(v, null, id, false);
4444
4450
  }
4445
- if (ids.length === 0 && v) if (is_array(v)) {
4446
- let idx = id_index_in_obj_list(v, kw["id"]);
4447
- if (idx >= 0) v.splice(idx, 1);
4448
- } else {
4449
- let v_ = kw_get_dict_value(null, v, jdb.hook, null, 0);
4450
- let idx = id_index_in_obj_list(v_, kw["id"]);
4451
- if (idx >= 0) v_.splice(idx, 1);
4451
+ if (ids.length === 0 && v) {
4452
+ if (is_array(v)) {
4453
+ let idx = id_index_in_obj_list(v, kw["id"]);
4454
+ if (idx >= 0) v.splice(idx, 1);
4455
+ } else {
4456
+ let v_ = kw_get_dict_value(null, v, jdb.hook, null, 0);
4457
+ let idx = id_index_in_obj_list(v_, kw["id"]);
4458
+ if (idx >= 0) v_.splice(idx, 1);
4459
+ }
4452
4460
  }
4453
4461
  return topic;
4454
4462
  }
@@ -5175,41 +5183,42 @@ function treedb_hook_data_size(value) {
5175
5183
  * }
5176
5184
  ************************************************************/
5177
5185
  function treedb_decoder_fkey(col, fkey) {
5178
- if (is_string(fkey)) if (fkey.indexOf("^") === -1) {
5179
- let fkey_desc = col.fkey;
5180
- if (json_object_size(fkey_desc) !== 1) {
5181
- log_error("bad fkey 1");
5182
- log_error(col);
5183
- log_error(fkey);
5184
- return null;
5185
- }
5186
- let topic_name;
5187
- let hook_name;
5188
- for (const k of Object.keys(fkey_desc)) {
5189
- topic_name = k;
5190
- hook_name = fkey_desc[k];
5191
- break;
5192
- }
5193
- return {
5194
- topic_name,
5195
- id: fkey,
5196
- hook_name
5197
- };
5198
- } else {
5199
- let tt = fkey.split("^");
5200
- if (tt.length !== 3) {
5201
- log_error("bad fkey 2");
5202
- log_error(col);
5203
- log_error(fkey);
5204
- return null;
5186
+ if (is_string(fkey)) {
5187
+ if (fkey.indexOf("^") === -1) {
5188
+ let fkey_desc = col.fkey;
5189
+ if (json_object_size(fkey_desc) !== 1) {
5190
+ log_error("bad fkey 1");
5191
+ log_error(col);
5192
+ log_error(fkey);
5193
+ return null;
5194
+ }
5195
+ let topic_name;
5196
+ let hook_name;
5197
+ for (const k of Object.keys(fkey_desc)) {
5198
+ topic_name = k;
5199
+ hook_name = fkey_desc[k];
5200
+ break;
5201
+ }
5202
+ return {
5203
+ topic_name,
5204
+ id: fkey,
5205
+ hook_name
5206
+ };
5207
+ } else {
5208
+ let tt = fkey.split("^");
5209
+ if (tt.length !== 3) {
5210
+ log_error("bad fkey 2");
5211
+ log_error(col);
5212
+ log_error(fkey);
5213
+ return null;
5214
+ }
5215
+ return {
5216
+ topic_name: tt[0],
5217
+ id: tt[1],
5218
+ hook_name: tt[2]
5219
+ };
5205
5220
  }
5206
- return {
5207
- topic_name: tt[0],
5208
- id: tt[1],
5209
- hook_name: tt[2]
5210
- };
5211
- }
5212
- else if (is_object(fkey)) return {
5221
+ } else if (is_object(fkey)) return {
5213
5222
  topic_name: fkey.topic_name,
5214
5223
  id: fkey.id,
5215
5224
  hook_name: fkey.hook_name
@@ -5251,38 +5260,39 @@ function treedb_encoder_fkey(col, fkey) {
5251
5260
  * }
5252
5261
  ********************************************/
5253
5262
  function treedb_decoder_hook(col, hook) {
5254
- if (is_string(hook)) if (hook.indexOf("^") === -1) {
5255
- let hook_desc = col.hook;
5256
- if (json_object_size(hook_desc) !== 1) {
5257
- log_error("bad hook 1");
5258
- log_error(col);
5259
- log_error(hook);
5260
- return null;
5261
- }
5262
- let topic_name;
5263
- for (let k of Object.keys(hook_desc)) {
5264
- topic_name = k;
5265
- hook_desc[k];
5266
- break;
5267
- }
5268
- return {
5269
- topic_name,
5270
- id: hook
5271
- };
5272
- } else {
5273
- let tt = hook.split("^");
5274
- if (tt.length !== 2) {
5275
- log_error("bad hook 2");
5276
- log_error(col);
5277
- log_error(hook);
5278
- return null;
5263
+ if (is_string(hook)) {
5264
+ if (hook.indexOf("^") === -1) {
5265
+ let hook_desc = col.hook;
5266
+ if (json_object_size(hook_desc) !== 1) {
5267
+ log_error("bad hook 1");
5268
+ log_error(col);
5269
+ log_error(hook);
5270
+ return null;
5271
+ }
5272
+ let topic_name;
5273
+ for (let k of Object.keys(hook_desc)) {
5274
+ topic_name = k;
5275
+ hook_desc[k];
5276
+ break;
5277
+ }
5278
+ return {
5279
+ topic_name,
5280
+ id: hook
5281
+ };
5282
+ } else {
5283
+ let tt = hook.split("^");
5284
+ if (tt.length !== 2) {
5285
+ log_error("bad hook 2");
5286
+ log_error(col);
5287
+ log_error(hook);
5288
+ return null;
5289
+ }
5290
+ return {
5291
+ topic_name: tt[0],
5292
+ id: tt[1]
5293
+ };
5279
5294
  }
5280
- return {
5281
- topic_name: tt[0],
5282
- id: tt[1]
5283
- };
5284
- }
5285
- else if (is_object(hook)) return {
5295
+ } else if (is_object(hook)) return {
5286
5296
  topic_name: hook.topic_name,
5287
5297
  id: hook.id
5288
5298
  };
@@ -5388,9 +5398,7 @@ function treedb_get_field_desc(col) {
5388
5398
  case "template":
5389
5399
  field_desc.enum_list = col.template;
5390
5400
  break;
5391
- case "table":
5392
- field_desc.enum_list = col.table;
5393
- break;
5401
+ case "table": field_desc.enum_list = col.table;
5394
5402
  }
5395
5403
  field_desc.type = f;
5396
5404
  } else if (str_in_list(treedb_field_attributes, f)) switch (f) {
@@ -5403,9 +5411,7 @@ function treedb_get_field_desc(col) {
5403
5411
  case "required":
5404
5412
  field_desc.is_required = true;
5405
5413
  break;
5406
- case "hidden":
5407
- field_desc.is_hidden = true;
5408
- break;
5414
+ case "hidden": field_desc.is_hidden = true;
5409
5415
  }
5410
5416
  }
5411
5417
  return field_desc;
@@ -5442,9 +5448,7 @@ function template_get_field_desc(key, value) {
5442
5448
  case "required":
5443
5449
  field_desc.is_required = true;
5444
5450
  break;
5445
- case "hidden":
5446
- field_desc.is_hidden = true;
5447
- break;
5451
+ case "hidden": field_desc.is_hidden = true;
5448
5452
  }
5449
5453
  }
5450
5454
  if (!field_desc.real_type) field_desc.real_type = "string";
@@ -5468,7 +5472,8 @@ function create_template_record(template, kw) {
5468
5472
  Object.entries(template).forEach(([field, col]) => {
5469
5473
  let default_value;
5470
5474
  if (is_object(col)) default_value = col.default;
5471
- new_record[field] = kw_get_dict_value(null, kw, field, default_value);
5475
+ let value = kw_get_dict_value(null, kw, field, default_value);
5476
+ new_record[field] = value;
5472
5477
  });
5473
5478
  return new_record;
5474
5479
  }
@@ -5549,7 +5554,6 @@ function mt_writing$2(gobj, path) {
5549
5554
  if (priv.msec > 0) {
5550
5555
  if (!gobj_is_running(gobj)) gobj_start(gobj);
5551
5556
  } else if (gobj_is_running(gobj)) gobj_stop(gobj);
5552
- break;
5553
5557
  }
5554
5558
  }
5555
5559
  /***************************************************************
@@ -5908,9 +5912,7 @@ function mt_writing(gobj, path) {
5908
5912
  case "remote_yuno_role":
5909
5913
  priv.remote_yuno_role = gobj_read_str_attr(gobj, "remote_yuno_role");
5910
5914
  break;
5911
- case "remote_yuno_service":
5912
- priv.remote_yuno_service = gobj_read_str_attr(gobj, "remote_yuno_service");
5913
- break;
5915
+ case "remote_yuno_service": priv.remote_yuno_service = gobj_read_str_attr(gobj, "remote_yuno_service");
5914
5916
  }
5915
5917
  }
5916
5918
  /***************************************************************
@@ -6452,12 +6454,13 @@ function ac_on_message(gobj, event, kw, src) {
6452
6454
  return 0;
6453
6455
  }
6454
6456
  let gobj_service = gobj_find_service(iev_dst_service, true);
6455
- if (gobj_service) if (gobj_has_event(gobj_service, iev_event, event_flag_t.EVF_PUBLIC_EVENT)) gobj_send_event(gobj_service, iev_event, iev_kw, gobj);
6456
- else {
6457
- log_error(`${gobj_short_name(gobj)}: Service found but no event or not public, service '${gobj_short_name(gobj_service)}', ev '${iev_event}'`);
6458
- return -1;
6459
- }
6460
- else if (gobj_is_pure_child(gobj)) gobj_send_event(gobj_parent(gobj), iev_event, iev_kw, gobj);
6457
+ if (gobj_service) {
6458
+ if (gobj_has_event(gobj_service, iev_event, event_flag_t.EVF_PUBLIC_EVENT)) gobj_send_event(gobj_service, iev_event, iev_kw, gobj);
6459
+ else {
6460
+ log_error(`${gobj_short_name(gobj)}: Service found but no event or not public, service '${gobj_short_name(gobj_service)}', ev '${iev_event}'`);
6461
+ return -1;
6462
+ }
6463
+ } else if (gobj_is_pure_child(gobj)) gobj_send_event(gobj_parent(gobj), iev_event, iev_kw, gobj);
6461
6464
  else gobj_publish_event(gobj, iev_event, iev_kw);
6462
6465
  return 0;
6463
6466
  }