@yuneta/gobj-js 7.10.0 → 7.13.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.
@@ -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
  };
@@ -5343,6 +5353,7 @@ var treedb_field_types = [
5343
5353
  "template",
5344
5354
  "uuid",
5345
5355
  "rowid",
5356
+ "qualified",
5346
5357
  "password",
5347
5358
  "email",
5348
5359
  "url",
@@ -5388,9 +5399,7 @@ function treedb_get_field_desc(col) {
5388
5399
  case "template":
5389
5400
  field_desc.enum_list = col.template;
5390
5401
  break;
5391
- case "table":
5392
- field_desc.enum_list = col.table;
5393
- break;
5402
+ case "table": field_desc.enum_list = col.table;
5394
5403
  }
5395
5404
  field_desc.type = f;
5396
5405
  } else if (str_in_list(treedb_field_attributes, f)) switch (f) {
@@ -5403,9 +5412,7 @@ function treedb_get_field_desc(col) {
5403
5412
  case "required":
5404
5413
  field_desc.is_required = true;
5405
5414
  break;
5406
- case "hidden":
5407
- field_desc.is_hidden = true;
5408
- break;
5415
+ case "hidden": field_desc.is_hidden = true;
5409
5416
  }
5410
5417
  }
5411
5418
  return field_desc;
@@ -5442,9 +5449,7 @@ function template_get_field_desc(key, value) {
5442
5449
  case "required":
5443
5450
  field_desc.is_required = true;
5444
5451
  break;
5445
- case "hidden":
5446
- field_desc.is_hidden = true;
5447
- break;
5452
+ case "hidden": field_desc.is_hidden = true;
5448
5453
  }
5449
5454
  }
5450
5455
  if (!field_desc.real_type) field_desc.real_type = "string";
@@ -5468,7 +5473,8 @@ function create_template_record(template, kw) {
5468
5473
  Object.entries(template).forEach(([field, col]) => {
5469
5474
  let default_value;
5470
5475
  if (is_object(col)) default_value = col.default;
5471
- new_record[field] = kw_get_dict_value(null, kw, field, default_value);
5476
+ let value = kw_get_dict_value(null, kw, field, default_value);
5477
+ new_record[field] = value;
5472
5478
  });
5473
5479
  return new_record;
5474
5480
  }
@@ -5549,7 +5555,6 @@ function mt_writing$2(gobj, path) {
5549
5555
  if (priv.msec > 0) {
5550
5556
  if (!gobj_is_running(gobj)) gobj_start(gobj);
5551
5557
  } else if (gobj_is_running(gobj)) gobj_stop(gobj);
5552
- break;
5553
5558
  }
5554
5559
  }
5555
5560
  /***************************************************************
@@ -5908,9 +5913,7 @@ function mt_writing(gobj, path) {
5908
5913
  case "remote_yuno_role":
5909
5914
  priv.remote_yuno_role = gobj_read_str_attr(gobj, "remote_yuno_role");
5910
5915
  break;
5911
- case "remote_yuno_service":
5912
- priv.remote_yuno_service = gobj_read_str_attr(gobj, "remote_yuno_service");
5913
- break;
5916
+ case "remote_yuno_service": priv.remote_yuno_service = gobj_read_str_attr(gobj, "remote_yuno_service");
5914
5917
  }
5915
5918
  }
5916
5919
  /***************************************************************
@@ -6452,12 +6455,13 @@ function ac_on_message(gobj, event, kw, src) {
6452
6455
  return 0;
6453
6456
  }
6454
6457
  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);
6458
+ if (gobj_service) {
6459
+ if (gobj_has_event(gobj_service, iev_event, event_flag_t.EVF_PUBLIC_EVENT)) gobj_send_event(gobj_service, iev_event, iev_kw, gobj);
6460
+ else {
6461
+ log_error(`${gobj_short_name(gobj)}: Service found but no event or not public, service '${gobj_short_name(gobj_service)}', ev '${iev_event}'`);
6462
+ return -1;
6463
+ }
6464
+ } else if (gobj_is_pure_child(gobj)) gobj_send_event(gobj_parent(gobj), iev_event, iev_kw, gobj);
6461
6465
  else gobj_publish_event(gobj, iev_event, iev_kw);
6462
6466
  return 0;
6463
6467
  }