@yuneta/gobj-js 7.26.8 → 7.26.9
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 -8
- package/dist/gobj-js.cjs.js.map +1 -1
- package/dist/gobj-js.cjs.min.js +172 -160
- package/dist/gobj-js.cjs.min.js.map +1 -1
- package/dist/gobj-js.es.js +28 -8
- package/dist/gobj-js.es.js.map +1 -1
- package/dist/gobj-js.es.min.js +19 -7
- package/dist/gobj-js.es.min.js.map +1 -1
- package/dist/gobj-js.iife.js +28 -8
- package/dist/gobj-js.iife.js.map +1 -1
- package/dist/gobj-js.iife.min.js +161 -149
- package/dist/gobj-js.iife.min.js.map +1 -1
- package/dist/gobj-js.umd.js +28 -8
- package/dist/gobj-js.umd.js.map +1 -1
- package/dist/gobj-js.umd.min.js +161 -149
- package/dist/gobj-js.umd.min.js.map +1 -1
- package/package.json +1 -1
package/dist/gobj-js.iife.js
CHANGED
|
@@ -4466,6 +4466,26 @@ var gobjJs = (function(exports) {
|
|
|
4466
4466
|
return 0;
|
|
4467
4467
|
}
|
|
4468
4468
|
/************************************************************
|
|
4469
|
+
* Whether walking `path` meets a value that is neither a dict nor
|
|
4470
|
+
* a list BEFORE its last segment: kw_find_path() logs that one
|
|
4471
|
+
* even when it is not verbose, so a writer that goes on to
|
|
4472
|
+
* kw_set_dict_value() would log it a second time.
|
|
4473
|
+
************************************************************/
|
|
4474
|
+
function path_crosses_a_scalar(kw, path) {
|
|
4475
|
+
let ss = path.split("`");
|
|
4476
|
+
let v = kw;
|
|
4477
|
+
for (let i = 0; i < ss.length - 1; i++) {
|
|
4478
|
+
if (is_array(v)) {
|
|
4479
|
+
const idx = list_segment_index(v, ss[i]);
|
|
4480
|
+
if (idx < 0) return false;
|
|
4481
|
+
v = v[idx];
|
|
4482
|
+
} else v = Object.prototype.hasOwnProperty.call(v, ss[i]) ? v[ss[i]] : void 0;
|
|
4483
|
+
if (v === void 0 || v === null) return false;
|
|
4484
|
+
if (!(is_object(v) || is_array(v))) return true;
|
|
4485
|
+
}
|
|
4486
|
+
return false;
|
|
4487
|
+
}
|
|
4488
|
+
/************************************************************
|
|
4469
4489
|
*
|
|
4470
4490
|
************************************************************/
|
|
4471
4491
|
function kw_set_subdict_value(gobj, kw, path, key, value) {
|
|
@@ -4476,7 +4496,7 @@ var gobjJs = (function(exports) {
|
|
|
4476
4496
|
}
|
|
4477
4497
|
let subdict = kw_find_path(gobj, kw, path, false);
|
|
4478
4498
|
if (subdict === void 0) {
|
|
4479
|
-
if (!is_string(path)) return -1;
|
|
4499
|
+
if (!is_string(path) || path_crosses_a_scalar(kw, path)) return -1;
|
|
4480
4500
|
subdict = {};
|
|
4481
4501
|
if (kw_set_dict_value(gobj, kw, path, subdict) < 0) return -1;
|
|
4482
4502
|
}
|
|
@@ -5204,12 +5224,12 @@ var gobjJs = (function(exports) {
|
|
|
5204
5224
|
************************************************************/
|
|
5205
5225
|
function jdb_init(jdb, prefix, duplicate) {
|
|
5206
5226
|
if (duplicate) jdb = json_deep_copy(jdb);
|
|
5207
|
-
let type = kw_get_dict_value(null, jdb, "type", [],
|
|
5208
|
-
kw_get_str(null, jdb, "hook", "data",
|
|
5209
|
-
let schema = kw_get_dict_value(null, jdb, "schema", {},
|
|
5210
|
-
let topics = kw_get_dict_value(null, jdb, "topics", {},
|
|
5227
|
+
let type = kw_get_dict_value(null, jdb, "type", [], kw_flag_t.KW_CREATE);
|
|
5228
|
+
kw_get_str(null, jdb, "hook", "data", kw_flag_t.KW_CREATE);
|
|
5229
|
+
let schema = kw_get_dict_value(null, jdb, "schema", {}, kw_flag_t.KW_CREATE);
|
|
5230
|
+
let topics = kw_get_dict_value(null, jdb, "topics", {}, kw_flag_t.KW_CREATE);
|
|
5211
5231
|
let walk = function(obj, key, value, full_path) {
|
|
5212
|
-
if (key.substring(0, 2) !== "__") kw_get_dict_value(null, topics, full_path, json_deep_copy(type),
|
|
5232
|
+
if (key.substring(0, 2) !== "__") kw_get_dict_value(null, topics, full_path, json_deep_copy(type), kw_flag_t.KW_CREATE);
|
|
5213
5233
|
};
|
|
5214
5234
|
_traverse_dict(schema, walk, prefix);
|
|
5215
5235
|
return jdb;
|
|
@@ -5237,14 +5257,14 @@ var gobjJs = (function(exports) {
|
|
|
5237
5257
|
let v = topic;
|
|
5238
5258
|
while (id = ids.shift()) {
|
|
5239
5259
|
if (empty_string(id) || !v) break;
|
|
5240
|
-
if (is_object(v)) v = kw_get_dict_value(null, v, jdb.hook, [],
|
|
5260
|
+
if (is_object(v)) v = kw_get_dict_value(null, v, jdb.hook, [], kw_flag_t.KW_CREATE);
|
|
5241
5261
|
v = _jdb_get(v, null, id, false);
|
|
5242
5262
|
}
|
|
5243
5263
|
if (ids.length === 0 && v) {
|
|
5244
5264
|
if (is_array(v)) v.push(kw);
|
|
5245
5265
|
else if (v["id"] === kw["id"]) json_object_update(v, kw);
|
|
5246
5266
|
else {
|
|
5247
|
-
let v_ = kw_get_dict_value(null, v, jdb.hook, [],
|
|
5267
|
+
let v_ = kw_get_dict_value(null, v, jdb.hook, [], kw_flag_t.KW_CREATE);
|
|
5248
5268
|
let v__ = _jdb_get(v_, jdb.hook, kw["id"], false);
|
|
5249
5269
|
if (v__) json_object_update(v__, kw);
|
|
5250
5270
|
else v_.push(kw);
|