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