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