@yuneta/gobj-js 7.26.4 → 7.26.6

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.
@@ -4067,15 +4067,22 @@
4067
4067
  ************************************************************/
4068
4068
  function kw_delete(gobj, kw, path) {
4069
4069
  if (gobj && !is_gobj(gobj)) log_error(`GObj bad instanceof`);
4070
+ const prefix = gobj ? gobj_short_name(gobj) + ": " : "";
4070
4071
  let [path_, k] = strrchr_split(path, "`");
4072
+ let v = kw;
4071
4073
  if (!empty_string(k)) {
4072
- let v = kw_find_path(gobj, kw, path_, true);
4073
- if (is_array(v)) {
4074
- log_error(`${gobj ? gobj_short_name(gobj) + ": " : ""}kw_delete(): cannot delete an item of a list: '${path}'`);
4075
- return -1;
4076
- }
4077
- json_object_del(v, k);
4078
- } else json_object_del(kw, path);
4074
+ v = kw_find_path(gobj, kw, path_, true);
4075
+ if (v === void 0) return -1;
4076
+ } else k = path;
4077
+ if (is_array(v)) {
4078
+ log_error(`${prefix}kw_delete(): cannot delete an item of a list: '${path}'`);
4079
+ return -1;
4080
+ }
4081
+ if (!is_object(v) || !Object.prototype.hasOwnProperty.call(v, k)) {
4082
+ log_error(`${prefix}kw_delete(): path not found: '${path}'`);
4083
+ return -1;
4084
+ }
4085
+ delete v[k];
4079
4086
  return 0;
4080
4087
  }
4081
4088
  /************************************************************
@@ -6603,7 +6610,7 @@
6603
6610
  let default_value;
6604
6611
  if (is_object(col)) default_value = col.default;
6605
6612
  let value = kw_get_dict_value(null, kw, field, default_value);
6606
- new_record[field] = value;
6613
+ json_object_set(new_record, field, value);
6607
6614
  });
6608
6615
  return new_record;
6609
6616
  }