@yuneta/gobj-js 7.25.5 → 7.25.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.
- package/README.md +7 -0
- package/dist/gobj-js.cjs.js +32 -16
- package/dist/gobj-js.cjs.js.map +1 -1
- package/dist/gobj-js.cjs.min.js +72 -68
- package/dist/gobj-js.cjs.min.js.map +1 -1
- package/dist/gobj-js.es.js +32 -16
- package/dist/gobj-js.es.js.map +1 -1
- package/dist/gobj-js.es.min.js +150 -146
- package/dist/gobj-js.es.min.js.map +1 -1
- package/dist/gobj-js.iife.js +32 -16
- package/dist/gobj-js.iife.js.map +1 -1
- package/dist/gobj-js.iife.min.js +67 -63
- package/dist/gobj-js.iife.min.js.map +1 -1
- package/dist/gobj-js.umd.js +32 -16
- package/dist/gobj-js.umd.js.map +1 -1
- package/dist/gobj-js.umd.min.js +67 -63
- package/dist/gobj-js.umd.min.js.map +1 -1
- package/package.json +1 -1
package/dist/gobj-js.es.js
CHANGED
|
@@ -3559,30 +3559,46 @@ function kw_has_key(kw, key) {
|
|
|
3559
3559
|
return false;
|
|
3560
3560
|
}
|
|
3561
3561
|
/************************************************************
|
|
3562
|
-
*
|
|
3562
|
+
* The value at `path` (keys joined by a backtick), as the C
|
|
3563
|
+
* kw_find_path() finds it: undefined when it is not there.
|
|
3564
|
+
* A kw that is not a dict or a list is LOGGED ("kw must be list
|
|
3565
|
+
* or dict") and answers undefined, as C answers NULL; so does a
|
|
3566
|
+
* segment in the middle of the path whose value is a scalar. A
|
|
3567
|
+
* middle segment that is absent or null answers undefined, logged
|
|
3568
|
+
* only when `verbose`. Before gobj-js 7.25.6 a bad kw answered 0,
|
|
3569
|
+
* which the typed readers took for a value found (kw_get_int() and
|
|
3570
|
+
* kw_get_real() answered 0 instead of the default, kw_get_str() and
|
|
3571
|
+
* kw_get_bool() logged a second line), the log named no path and
|
|
3572
|
+
* called gobj_short_name() on a null gobj ("gobj bad type"), and a
|
|
3573
|
+
* null middle segment threw a TypeError.
|
|
3563
3574
|
************************************************************/
|
|
3564
3575
|
function kw_find_path(gobj, kw, path, verbose) {
|
|
3565
3576
|
if (gobj && !is_gobj(gobj)) log_error(`GObj bad instanceof`);
|
|
3577
|
+
const prefix = gobj ? `${gobj_short_name(gobj)}: ` : "";
|
|
3566
3578
|
if (!(is_object(kw) || is_array(kw))) {
|
|
3567
|
-
log_error(`${
|
|
3568
|
-
return
|
|
3579
|
+
log_error(`${prefix}kw must be list or dict: '${String(path)}'`);
|
|
3580
|
+
return;
|
|
3569
3581
|
}
|
|
3570
3582
|
if (!is_string(path)) {
|
|
3571
|
-
log_error(`${
|
|
3572
|
-
return
|
|
3583
|
+
log_error(`${prefix}path must be a string: ${String(path)}`);
|
|
3584
|
+
return;
|
|
3573
3585
|
}
|
|
3574
3586
|
let ss = path.split("`");
|
|
3575
|
-
if (ss.length <= 1) return kw[path];
|
|
3576
3587
|
let len = ss.length;
|
|
3577
|
-
for (let i = 0; i < len; i++) {
|
|
3578
|
-
|
|
3579
|
-
kw
|
|
3580
|
-
|
|
3581
|
-
|
|
3588
|
+
for (let i = 0; i < len - 1; i++) {
|
|
3589
|
+
kw = kw[ss[i]];
|
|
3590
|
+
if (kw === void 0 || kw === null) {
|
|
3591
|
+
if (verbose) log_error(`${prefix}path not found: '${path}'`);
|
|
3592
|
+
return;
|
|
3593
|
+
}
|
|
3594
|
+
if (!(is_object(kw) || is_array(kw))) {
|
|
3595
|
+
log_error(`${prefix}kw must be list or dict: '${path}'`);
|
|
3582
3596
|
return;
|
|
3583
3597
|
}
|
|
3584
3598
|
}
|
|
3585
|
-
|
|
3599
|
+
let value = kw[ss[len - 1]];
|
|
3600
|
+
if (value === void 0 && verbose) log_error(`${prefix}path not found: '${path}'`);
|
|
3601
|
+
return value;
|
|
3586
3602
|
}
|
|
3587
3603
|
/************************************************************
|
|
3588
3604
|
*
|
|
@@ -3623,7 +3639,7 @@ function kw_get_bool(gobj, kw, path, default_value, flag) {
|
|
|
3623
3639
|
const extract = flag && flag & kw_flag_t.KW_EXTRACT;
|
|
3624
3640
|
const wild = flag && flag & kw_flag_t.KW_WILD_NUMBER;
|
|
3625
3641
|
if (b === void 0) {
|
|
3626
|
-
if (create) {
|
|
3642
|
+
if (create && kw) {
|
|
3627
3643
|
let v = Boolean(default_value);
|
|
3628
3644
|
kw_set_dict_value(gobj, kw, path, v);
|
|
3629
3645
|
return v;
|
|
@@ -3691,7 +3707,7 @@ function kw_get_int(gobj, kw, path, default_value, flag) {
|
|
|
3691
3707
|
const extract = flag && flag & kw_flag_t.KW_EXTRACT;
|
|
3692
3708
|
const wild = flag && flag & kw_flag_t.KW_WILD_NUMBER;
|
|
3693
3709
|
if (v === void 0) {
|
|
3694
|
-
if (create) {
|
|
3710
|
+
if (create && kw) {
|
|
3695
3711
|
let v = parseInt(default_value);
|
|
3696
3712
|
kw_set_dict_value(gobj, kw, path, v);
|
|
3697
3713
|
return v;
|
|
@@ -3738,7 +3754,7 @@ function kw_get_real(gobj, kw, path, default_value, flag) {
|
|
|
3738
3754
|
const extract = flag && flag & kw_flag_t.KW_EXTRACT;
|
|
3739
3755
|
const wild = flag && flag & kw_flag_t.KW_WILD_NUMBER;
|
|
3740
3756
|
if (v === void 0) {
|
|
3741
|
-
if (create) {
|
|
3757
|
+
if (create && kw) {
|
|
3742
3758
|
let v = Number(default_value);
|
|
3743
3759
|
kw_set_dict_value(gobj, kw, path, v);
|
|
3744
3760
|
return v;
|
|
@@ -3808,7 +3824,7 @@ function kw_get_str(gobj, kw, path, default_value, flag) {
|
|
|
3808
3824
|
const create = flag && flag & kw_flag_t.KW_CREATE;
|
|
3809
3825
|
const extract = flag && flag & kw_flag_t.KW_EXTRACT;
|
|
3810
3826
|
if (v === void 0) {
|
|
3811
|
-
if (create) {
|
|
3827
|
+
if (create && kw) {
|
|
3812
3828
|
kw_set_dict_value(gobj, kw, path, is_string(default_value) ? default_value : null);
|
|
3813
3829
|
return default_value;
|
|
3814
3830
|
} else if (required && !kw_path_holds_key(kw, path)) {
|