@yuneta/gobj-js 7.26.3 → 7.26.5
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.
- package/dist/gobj-js.cjs.js +28 -7
- package/dist/gobj-js.cjs.js.map +1 -1
- package/dist/gobj-js.cjs.min.js +330 -313
- package/dist/gobj-js.cjs.min.js.map +1 -1
- package/dist/gobj-js.es.js +28 -7
- package/dist/gobj-js.es.js.map +1 -1
- package/dist/gobj-js.es.min.js +363 -346
- package/dist/gobj-js.es.min.js.map +1 -1
- package/dist/gobj-js.iife.js +28 -7
- package/dist/gobj-js.iife.js.map +1 -1
- package/dist/gobj-js.iife.min.js +330 -313
- package/dist/gobj-js.iife.min.js.map +1 -1
- package/dist/gobj-js.umd.js +28 -7
- package/dist/gobj-js.umd.js.map +1 -1
- package/dist/gobj-js.umd.min.js +330 -313
- package/dist/gobj-js.umd.min.js.map +1 -1
- package/package.json +1 -1
package/dist/gobj-js.es.js
CHANGED
|
@@ -4003,6 +4003,12 @@ function set_own_key(obj, key, value) {
|
|
|
4003
4003
|
* called gobj_short_name() on a null gobj ("gobj bad type"), and a
|
|
4004
4004
|
* null middle segment threw a TypeError.
|
|
4005
4005
|
************************************************************/
|
|
4006
|
+
function list_segment_index(list, seg) {
|
|
4007
|
+
if (!/^[0-9]+$/.test(seg)) return -1;
|
|
4008
|
+
const idx = Number(seg);
|
|
4009
|
+
if (idx >= list.length) return -1;
|
|
4010
|
+
return idx;
|
|
4011
|
+
}
|
|
4006
4012
|
function kw_find_path(gobj, kw, path, verbose) {
|
|
4007
4013
|
if (gobj && !is_gobj(gobj)) log_error(`GObj bad instanceof`);
|
|
4008
4014
|
const prefix = gobj ? `${gobj_short_name(gobj)}: ` : "";
|
|
@@ -4018,11 +4024,12 @@ function kw_find_path(gobj, kw, path, verbose) {
|
|
|
4018
4024
|
let len = ss.length;
|
|
4019
4025
|
for (let i = 0; i < len; i++) {
|
|
4020
4026
|
if (is_array(kw)) {
|
|
4021
|
-
|
|
4027
|
+
const idx = list_segment_index(kw, ss[i]);
|
|
4028
|
+
if (idx < 0) {
|
|
4022
4029
|
if (verbose) log_error(`${prefix}path not found: '${path}'`);
|
|
4023
4030
|
return;
|
|
4024
4031
|
}
|
|
4025
|
-
ss[i] = String(
|
|
4032
|
+
ss[i] = String(idx);
|
|
4026
4033
|
}
|
|
4027
4034
|
if (is_prototype_segment(kw, ss[i])) {
|
|
4028
4035
|
if (verbose) log_error(`${prefix}path not found: '${path}'`);
|
|
@@ -4057,8 +4064,14 @@ function strrchr_split(str, char) {
|
|
|
4057
4064
|
function kw_delete(gobj, kw, path) {
|
|
4058
4065
|
if (gobj && !is_gobj(gobj)) log_error(`GObj bad instanceof`);
|
|
4059
4066
|
let [path_, k] = strrchr_split(path, "`");
|
|
4060
|
-
if (!empty_string(k))
|
|
4061
|
-
|
|
4067
|
+
if (!empty_string(k)) {
|
|
4068
|
+
let v = kw_find_path(gobj, kw, path_, true);
|
|
4069
|
+
if (is_array(v)) {
|
|
4070
|
+
log_error(`${gobj ? gobj_short_name(gobj) + ": " : ""}kw_delete(): cannot delete an item of a list: '${path}'`);
|
|
4071
|
+
return -1;
|
|
4072
|
+
}
|
|
4073
|
+
json_object_del(v, k);
|
|
4074
|
+
} else json_object_del(kw, path);
|
|
4062
4075
|
return 0;
|
|
4063
4076
|
}
|
|
4064
4077
|
/************************************************************
|
|
@@ -4414,6 +4427,14 @@ function kw_set_dict_value(gobj, kw, path, value) {
|
|
|
4414
4427
|
let len = ss.length;
|
|
4415
4428
|
for (let i = 0; i < len; i++) {
|
|
4416
4429
|
let key = ss[i];
|
|
4430
|
+
if (is_array(kw)) {
|
|
4431
|
+
const idx = list_segment_index(kw, key);
|
|
4432
|
+
if (idx < 0) {
|
|
4433
|
+
log_error(`${gobj ? gobj_short_name(gobj) + ": " : ""}kw_set_dict_value(): segment '${key}' is not an index of its list: '${path}'`);
|
|
4434
|
+
return -1;
|
|
4435
|
+
}
|
|
4436
|
+
key = String(idx);
|
|
4437
|
+
}
|
|
4417
4438
|
if (i === len - 1) set_own_key(kw, key, value);
|
|
4418
4439
|
else {
|
|
4419
4440
|
let seg = is_prototype_segment(kw, key) ? void 0 : kw[key];
|
|
@@ -6578,7 +6599,7 @@ function create_template_record(template, kw) {
|
|
|
6578
6599
|
let default_value;
|
|
6579
6600
|
if (is_object(col)) default_value = col.default;
|
|
6580
6601
|
let value = kw_get_dict_value(null, kw, field, default_value);
|
|
6581
|
-
new_record
|
|
6602
|
+
json_object_set(new_record, field, value);
|
|
6582
6603
|
});
|
|
6583
6604
|
return new_record;
|
|
6584
6605
|
}
|
|
@@ -7300,13 +7321,13 @@ function setup_websocket(gobj) {
|
|
|
7300
7321
|
websocket = new WebSocket(url);
|
|
7301
7322
|
} catch (e) {
|
|
7302
7323
|
log_error(`${gobj_short_name(gobj)}: Cannot open WebSocket to '${url}', Error: ${e.message}`);
|
|
7303
|
-
gobj_post_event(gobj, "EV_ON_CLOSE", {
|
|
7324
|
+
if (gobj_post_event(gobj, "EV_ON_CLOSE", {
|
|
7304
7325
|
url,
|
|
7305
7326
|
ws_seq,
|
|
7306
7327
|
code: 1006,
|
|
7307
7328
|
reason: e.message,
|
|
7308
7329
|
was_clean: false
|
|
7309
|
-
}, gobj);
|
|
7330
|
+
}, gobj) < 0) set_timeout(gobj.priv.gobj_timer, next_retry(gobj));
|
|
7310
7331
|
return null;
|
|
7311
7332
|
}
|
|
7312
7333
|
if (!websocket) {
|