@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.
@@ -90,9 +90,7 @@
90
90
  case "x":
91
91
  arg = (parseInt(arg, 10) >>> 0).toString(16);
92
92
  break;
93
- case "X":
94
- arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase();
95
- break;
93
+ case "X": arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase();
96
94
  }
97
95
  if (re.json.test(ph.type)) output += arg;
98
96
  else {
@@ -780,9 +778,7 @@
780
778
  }
781
779
  else jn_value = svalue;
782
780
  break;
783
- case data_type_t.DTP_POINTER:
784
- jn_value = svalue;
785
- break;
781
+ case data_type_t.DTP_POINTER: jn_value = svalue;
786
782
  }
787
783
  if (jn_value === void 0) {
788
784
  log_error(`default_value WRONG, it: ${it.name}, value: ${it.default_value}`);
@@ -852,9 +848,7 @@
852
848
  return -1;
853
849
  }
854
850
  break;
855
- case data_type_t.DTP_POINTER:
856
- jn_value2 = jn_value_;
857
- break;
851
+ case data_type_t.DTP_POINTER: jn_value2 = jn_value_;
858
852
  }
859
853
  if (jn_value2 === void 0) log_error(`${gobj_short_name(gobj)}: attr undefined: ${it.name}`);
860
854
  sdata[it.name] = jn_value2;
@@ -1133,6 +1127,7 @@
1133
1127
  } catch (e) {}
1134
1128
  if (!gclass) {
1135
1129
  if (verbose) log_error(`gclass not found: ${gclass_name}`);
1130
+ return null;
1136
1131
  }
1137
1132
  return gclass;
1138
1133
  }
@@ -1157,8 +1152,8 @@
1157
1152
  function gobj_find_service(service_name, verbose) {
1158
1153
  service_name = service_name.toLowerCase();
1159
1154
  let service_gobj = __jn_services__[service_name];
1160
- if (!service_gobj && verbose) {
1161
- log_error(`gobj service not found: ${service_name}`);
1155
+ if (!service_gobj) {
1156
+ if (verbose) log_error(`gobj service not found: ${service_name}`);
1162
1157
  return null;
1163
1158
  }
1164
1159
  return service_gobj;
@@ -1574,12 +1569,14 @@
1574
1569
  log_error(`${gobj_short_name(gobj)}: GObj DISABLED`);
1575
1570
  return -1;
1576
1571
  }
1577
- if (!gobj_is_running(gobj)) if (!(gobj.gclass.gclass_flag & gclass_flag_t.gcflag_required_start_to_play)) {
1578
- log_warning(`${gobj_short_name(gobj)}: GObj playing without previous start`);
1579
- gobj_start(gobj);
1580
- } else {
1581
- log_error(`${gobj_short_name(gobj)}: Cannot play, start not done`);
1582
- return -1;
1572
+ if (!gobj_is_running(gobj)) {
1573
+ 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;
1579
+ }
1583
1580
  }
1584
1581
  if (__trace_gobj_start_stop__(gobj)) trace_machine(sprintf("⏯ ⏯ play: %s", gobj_full_name(gobj)));
1585
1582
  gobj.playing = true;
@@ -2684,7 +2681,7 @@
2684
2681
  log_error(`subscriber NULL: ev ${event}`);
2685
2682
  return 0;
2686
2683
  }
2687
- const IGNORED_KEYS = new Set([
2684
+ const IGNORED_KEYS = /* @__PURE__ */ new Set([
2688
2685
  "__config__",
2689
2686
  "__global__",
2690
2687
  "__local__",
@@ -2740,7 +2737,7 @@
2740
2737
  log_error(`subscriber NULL: ev ${event}`);
2741
2738
  return 0;
2742
2739
  }
2743
- const IGNORED_KEYS = new Set([
2740
+ const IGNORED_KEYS = /* @__PURE__ */ new Set([
2744
2741
  "__config__",
2745
2742
  "__global__",
2746
2743
  "__local__",
@@ -2934,9 +2931,10 @@
2934
2931
  if (tracea > 1) trace_json(kw);
2935
2932
  }
2936
2933
  if (gobj.gclass.gmt.mt_command_parser) return gobj.gclass.gmt.mt_command_parser(gobj, command, kw, src);
2937
- if (gobj.gclass.command_table) if (__global_command_parser_fn__) return __global_command_parser_fn__(gobj, command, kw, src);
2938
- else return build_command_response(gobj, -1, sprintf("%s: global command parser not available", gobj_short_name(gobj)), 0, 0);
2939
- else return build_command_response(gobj, -1, sprintf("%s: command table not available", gobj_short_name(gobj)), 0, 0);
2934
+ if (gobj.gclass.command_table) {
2935
+ if (__global_command_parser_fn__) return __global_command_parser_fn__(gobj, command, kw, src);
2936
+ else return build_command_response(gobj, -1, sprintf("%s: global command parser not available", gobj_short_name(gobj)), 0, 0);
2937
+ } else return build_command_response(gobj, -1, sprintf("%s: command table not available", gobj_short_name(gobj)), 0, 0);
2940
2938
  }
2941
2939
  /************************************************************
2942
2940
  * Exec gobj stats. Return a webix
@@ -3043,22 +3041,26 @@
3043
3041
  function log_error(format) {
3044
3042
  let msg = format_log(format);
3045
3043
  let hora = current_timestamp();
3046
- if (f_error) if (f_error === _console.error) {
3047
- if (__console_output_enabled__) f_error("%c" + hora + " ERROR: " + String(msg), "color:red");
3048
- } else {
3049
- if (__console_output_enabled__) _console.error("%c" + hora + " ERROR: " + String(msg), "color:red");
3050
- f_error(`${hora} ERROR: ${String(msg)}`);
3044
+ if (f_error) {
3045
+ if (f_error === _console.error) {
3046
+ if (__console_output_enabled__) f_error("%c" + hora + " ERROR: " + String(msg), "color:red");
3047
+ } else {
3048
+ if (__console_output_enabled__) _console.error("%c" + hora + " ERROR: " + String(msg), "color:red");
3049
+ f_error(`${hora} ERROR: ${String(msg)}`);
3050
+ }
3051
3051
  }
3052
3052
  emit_log_callback("error", msg, hora);
3053
3053
  }
3054
3054
  function log_warning(format) {
3055
3055
  let msg = format_log(format);
3056
3056
  let hora = current_timestamp();
3057
- if (f_warning) if (f_warning === _console.warn) {
3058
- if (__console_output_enabled__) f_warning("%c" + hora + " WARNING: " + String(msg), "color:yellow");
3059
- } else {
3060
- if (__console_output_enabled__) _console.warn("%c" + hora + " WARNING: " + String(msg), "color:yellow");
3061
- f_warning(`${hora} WARNING: ${String(msg)}`);
3057
+ if (f_warning) {
3058
+ if (f_warning === _console.warn) {
3059
+ if (__console_output_enabled__) f_warning("%c" + hora + " WARNING: " + String(msg), "color:yellow");
3060
+ } else {
3061
+ if (__console_output_enabled__) _console.warn("%c" + hora + " WARNING: " + String(msg), "color:yellow");
3062
+ f_warning(`${hora} WARNING: ${String(msg)}`);
3063
+ }
3062
3064
  }
3063
3065
  emit_log_callback("warning", msg, hora);
3064
3066
  }
@@ -4094,10 +4096,12 @@
4094
4096
  vv["id"] = field_id;
4095
4097
  vv["value"] = v[field_id];
4096
4098
  } else {
4097
- if (!kw_has_key(v, field_value)) 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;
4099
+ if (!kw_has_key(v, field_value)) {
4100
+ if (json_size(v) > 0) field_value = Object.keys(v)[0];
4101
+ else {
4102
+ log_error("list2options(): object without field value: " + field_value);
4103
+ continue;
4104
+ }
4101
4105
  }
4102
4106
  vv["id"] = v[field_id];
4103
4107
  vv["value"] = v[field_value];
@@ -4413,13 +4417,15 @@
4413
4417
  if (is_object(v)) v = kw_get_dict_value(null, v, jdb.hook, [], 1);
4414
4418
  v = _jdb_get(v, null, id, false);
4415
4419
  }
4416
- if (ids.length === 0 && v) if (is_array(v)) v.push(kw);
4417
- else if (v["id"] === kw["id"]) Object.assign(v, kw);
4418
- else {
4419
- let v_ = kw_get_dict_value(null, v, jdb.hook, [], 1);
4420
- let v__ = _jdb_get(v_, jdb.hook, kw["id"], false);
4421
- if (v__) Object.assign(v__, kw);
4422
- else v_.push(kw);
4420
+ if (ids.length === 0 && v) {
4421
+ if (is_array(v)) v.push(kw);
4422
+ else if (v["id"] === kw["id"]) Object.assign(v, kw);
4423
+ else {
4424
+ let v_ = kw_get_dict_value(null, v, jdb.hook, [], 1);
4425
+ let v__ = _jdb_get(v_, jdb.hook, kw["id"], false);
4426
+ if (v__) Object.assign(v__, kw);
4427
+ else v_.push(kw);
4428
+ }
4423
4429
  }
4424
4430
  return topic;
4425
4431
  }
@@ -4445,13 +4451,15 @@
4445
4451
  if (is_object(v)) v = kw_get_dict_value(null, v, jdb.hook, null, 0);
4446
4452
  v = _jdb_get(v, null, id, false);
4447
4453
  }
4448
- if (ids.length === 0 && v) if (is_array(v)) {
4449
- let idx = id_index_in_obj_list(v, kw["id"]);
4450
- if (idx >= 0) v.splice(idx, 1);
4451
- } else {
4452
- let v_ = kw_get_dict_value(null, v, jdb.hook, null, 0);
4453
- let idx = id_index_in_obj_list(v_, kw["id"]);
4454
- if (idx >= 0) v_.splice(idx, 1);
4454
+ if (ids.length === 0 && v) {
4455
+ if (is_array(v)) {
4456
+ let idx = id_index_in_obj_list(v, kw["id"]);
4457
+ if (idx >= 0) v.splice(idx, 1);
4458
+ } else {
4459
+ let v_ = kw_get_dict_value(null, v, jdb.hook, null, 0);
4460
+ let idx = id_index_in_obj_list(v_, kw["id"]);
4461
+ if (idx >= 0) v_.splice(idx, 1);
4462
+ }
4455
4463
  }
4456
4464
  return topic;
4457
4465
  }
@@ -5178,41 +5186,42 @@
5178
5186
  * }
5179
5187
  ************************************************************/
5180
5188
  function treedb_decoder_fkey(col, fkey) {
5181
- if (is_string(fkey)) if (fkey.indexOf("^") === -1) {
5182
- let fkey_desc = col.fkey;
5183
- if (json_object_size(fkey_desc) !== 1) {
5184
- log_error("bad fkey 1");
5185
- log_error(col);
5186
- log_error(fkey);
5187
- return null;
5188
- }
5189
- let topic_name;
5190
- let hook_name;
5191
- for (const k of Object.keys(fkey_desc)) {
5192
- topic_name = k;
5193
- hook_name = fkey_desc[k];
5194
- break;
5195
- }
5196
- return {
5197
- topic_name,
5198
- id: fkey,
5199
- hook_name
5200
- };
5201
- } else {
5202
- let tt = fkey.split("^");
5203
- if (tt.length !== 3) {
5204
- log_error("bad fkey 2");
5205
- log_error(col);
5206
- log_error(fkey);
5207
- return null;
5189
+ if (is_string(fkey)) {
5190
+ if (fkey.indexOf("^") === -1) {
5191
+ let fkey_desc = col.fkey;
5192
+ if (json_object_size(fkey_desc) !== 1) {
5193
+ log_error("bad fkey 1");
5194
+ log_error(col);
5195
+ log_error(fkey);
5196
+ return null;
5197
+ }
5198
+ let topic_name;
5199
+ let hook_name;
5200
+ for (const k of Object.keys(fkey_desc)) {
5201
+ topic_name = k;
5202
+ hook_name = fkey_desc[k];
5203
+ break;
5204
+ }
5205
+ return {
5206
+ topic_name,
5207
+ id: fkey,
5208
+ hook_name
5209
+ };
5210
+ } else {
5211
+ let tt = fkey.split("^");
5212
+ if (tt.length !== 3) {
5213
+ log_error("bad fkey 2");
5214
+ log_error(col);
5215
+ log_error(fkey);
5216
+ return null;
5217
+ }
5218
+ return {
5219
+ topic_name: tt[0],
5220
+ id: tt[1],
5221
+ hook_name: tt[2]
5222
+ };
5208
5223
  }
5209
- return {
5210
- topic_name: tt[0],
5211
- id: tt[1],
5212
- hook_name: tt[2]
5213
- };
5214
- }
5215
- else if (is_object(fkey)) return {
5224
+ } else if (is_object(fkey)) return {
5216
5225
  topic_name: fkey.topic_name,
5217
5226
  id: fkey.id,
5218
5227
  hook_name: fkey.hook_name
@@ -5254,38 +5263,39 @@
5254
5263
  * }
5255
5264
  ********************************************/
5256
5265
  function treedb_decoder_hook(col, hook) {
5257
- if (is_string(hook)) if (hook.indexOf("^") === -1) {
5258
- let hook_desc = col.hook;
5259
- if (json_object_size(hook_desc) !== 1) {
5260
- log_error("bad hook 1");
5261
- log_error(col);
5262
- log_error(hook);
5263
- return null;
5264
- }
5265
- let topic_name;
5266
- for (let k of Object.keys(hook_desc)) {
5267
- topic_name = k;
5268
- hook_desc[k];
5269
- break;
5270
- }
5271
- return {
5272
- topic_name,
5273
- id: hook
5274
- };
5275
- } else {
5276
- let tt = hook.split("^");
5277
- if (tt.length !== 2) {
5278
- log_error("bad hook 2");
5279
- log_error(col);
5280
- log_error(hook);
5281
- return null;
5266
+ if (is_string(hook)) {
5267
+ if (hook.indexOf("^") === -1) {
5268
+ let hook_desc = col.hook;
5269
+ if (json_object_size(hook_desc) !== 1) {
5270
+ log_error("bad hook 1");
5271
+ log_error(col);
5272
+ log_error(hook);
5273
+ return null;
5274
+ }
5275
+ let topic_name;
5276
+ for (let k of Object.keys(hook_desc)) {
5277
+ topic_name = k;
5278
+ hook_desc[k];
5279
+ break;
5280
+ }
5281
+ return {
5282
+ topic_name,
5283
+ id: hook
5284
+ };
5285
+ } else {
5286
+ let tt = hook.split("^");
5287
+ if (tt.length !== 2) {
5288
+ log_error("bad hook 2");
5289
+ log_error(col);
5290
+ log_error(hook);
5291
+ return null;
5292
+ }
5293
+ return {
5294
+ topic_name: tt[0],
5295
+ id: tt[1]
5296
+ };
5282
5297
  }
5283
- return {
5284
- topic_name: tt[0],
5285
- id: tt[1]
5286
- };
5287
- }
5288
- else if (is_object(hook)) return {
5298
+ } else if (is_object(hook)) return {
5289
5299
  topic_name: hook.topic_name,
5290
5300
  id: hook.id
5291
5301
  };
@@ -5346,6 +5356,7 @@
5346
5356
  "template",
5347
5357
  "uuid",
5348
5358
  "rowid",
5359
+ "qualified",
5349
5360
  "password",
5350
5361
  "email",
5351
5362
  "url",
@@ -5391,9 +5402,7 @@
5391
5402
  case "template":
5392
5403
  field_desc.enum_list = col.template;
5393
5404
  break;
5394
- case "table":
5395
- field_desc.enum_list = col.table;
5396
- break;
5405
+ case "table": field_desc.enum_list = col.table;
5397
5406
  }
5398
5407
  field_desc.type = f;
5399
5408
  } else if (str_in_list(treedb_field_attributes, f)) switch (f) {
@@ -5406,9 +5415,7 @@
5406
5415
  case "required":
5407
5416
  field_desc.is_required = true;
5408
5417
  break;
5409
- case "hidden":
5410
- field_desc.is_hidden = true;
5411
- break;
5418
+ case "hidden": field_desc.is_hidden = true;
5412
5419
  }
5413
5420
  }
5414
5421
  return field_desc;
@@ -5445,9 +5452,7 @@
5445
5452
  case "required":
5446
5453
  field_desc.is_required = true;
5447
5454
  break;
5448
- case "hidden":
5449
- field_desc.is_hidden = true;
5450
- break;
5455
+ case "hidden": field_desc.is_hidden = true;
5451
5456
  }
5452
5457
  }
5453
5458
  if (!field_desc.real_type) field_desc.real_type = "string";
@@ -5471,7 +5476,8 @@
5471
5476
  Object.entries(template).forEach(([field, col]) => {
5472
5477
  let default_value;
5473
5478
  if (is_object(col)) default_value = col.default;
5474
- new_record[field] = kw_get_dict_value(null, kw, field, default_value);
5479
+ let value = kw_get_dict_value(null, kw, field, default_value);
5480
+ new_record[field] = value;
5475
5481
  });
5476
5482
  return new_record;
5477
5483
  }
@@ -5552,7 +5558,6 @@
5552
5558
  if (priv.msec > 0) {
5553
5559
  if (!gobj_is_running(gobj)) gobj_start(gobj);
5554
5560
  } else if (gobj_is_running(gobj)) gobj_stop(gobj);
5555
- break;
5556
5561
  }
5557
5562
  }
5558
5563
  /***************************************************************
@@ -5911,9 +5916,7 @@
5911
5916
  case "remote_yuno_role":
5912
5917
  priv.remote_yuno_role = gobj_read_str_attr(gobj, "remote_yuno_role");
5913
5918
  break;
5914
- case "remote_yuno_service":
5915
- priv.remote_yuno_service = gobj_read_str_attr(gobj, "remote_yuno_service");
5916
- break;
5919
+ case "remote_yuno_service": priv.remote_yuno_service = gobj_read_str_attr(gobj, "remote_yuno_service");
5917
5920
  }
5918
5921
  }
5919
5922
  /***************************************************************
@@ -6455,12 +6458,13 @@
6455
6458
  return 0;
6456
6459
  }
6457
6460
  let gobj_service = gobj_find_service(iev_dst_service, true);
6458
- 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);
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
+ if (gobj_service) {
6462
+ if (gobj_has_event(gobj_service, iev_event, event_flag_t.EVF_PUBLIC_EVENT)) gobj_send_event(gobj_service, iev_event, iev_kw, gobj);
6463
+ else {
6464
+ log_error(`${gobj_short_name(gobj)}: Service found but no event or not public, service '${gobj_short_name(gobj_service)}', ev '${iev_event}'`);
6465
+ return -1;
6466
+ }
6467
+ } else if (gobj_is_pure_child(gobj)) gobj_send_event(gobj_parent(gobj), iev_event, iev_kw, gobj);
6464
6468
  else gobj_publish_event(gobj, iev_event, iev_kw);
6465
6469
  return 0;
6466
6470
  }