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