@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.umd.js
CHANGED
|
@@ -3563,30 +3563,46 @@
|
|
|
3563
3563
|
return false;
|
|
3564
3564
|
}
|
|
3565
3565
|
/************************************************************
|
|
3566
|
-
*
|
|
3566
|
+
* The value at `path` (keys joined by a backtick), as the C
|
|
3567
|
+
* kw_find_path() finds it: undefined when it is not there.
|
|
3568
|
+
* A kw that is not a dict or a list is LOGGED ("kw must be list
|
|
3569
|
+
* or dict") and answers undefined, as C answers NULL; so does a
|
|
3570
|
+
* segment in the middle of the path whose value is a scalar. A
|
|
3571
|
+
* middle segment that is absent or null answers undefined, logged
|
|
3572
|
+
* only when `verbose`. Before gobj-js 7.25.6 a bad kw answered 0,
|
|
3573
|
+
* which the typed readers took for a value found (kw_get_int() and
|
|
3574
|
+
* kw_get_real() answered 0 instead of the default, kw_get_str() and
|
|
3575
|
+
* kw_get_bool() logged a second line), the log named no path and
|
|
3576
|
+
* called gobj_short_name() on a null gobj ("gobj bad type"), and a
|
|
3577
|
+
* null middle segment threw a TypeError.
|
|
3567
3578
|
************************************************************/
|
|
3568
3579
|
function kw_find_path(gobj, kw, path, verbose) {
|
|
3569
3580
|
if (gobj && !is_gobj(gobj)) log_error(`GObj bad instanceof`);
|
|
3581
|
+
const prefix = gobj ? `${gobj_short_name(gobj)}: ` : "";
|
|
3570
3582
|
if (!(is_object(kw) || is_array(kw))) {
|
|
3571
|
-
log_error(`${
|
|
3572
|
-
return
|
|
3583
|
+
log_error(`${prefix}kw must be list or dict: '${String(path)}'`);
|
|
3584
|
+
return;
|
|
3573
3585
|
}
|
|
3574
3586
|
if (!is_string(path)) {
|
|
3575
|
-
log_error(`${
|
|
3576
|
-
return
|
|
3587
|
+
log_error(`${prefix}path must be a string: ${String(path)}`);
|
|
3588
|
+
return;
|
|
3577
3589
|
}
|
|
3578
3590
|
let ss = path.split("`");
|
|
3579
|
-
if (ss.length <= 1) return kw[path];
|
|
3580
3591
|
let len = ss.length;
|
|
3581
|
-
for (let i = 0; i < len; i++) {
|
|
3582
|
-
|
|
3583
|
-
kw
|
|
3584
|
-
|
|
3585
|
-
|
|
3592
|
+
for (let i = 0; i < len - 1; i++) {
|
|
3593
|
+
kw = kw[ss[i]];
|
|
3594
|
+
if (kw === void 0 || kw === null) {
|
|
3595
|
+
if (verbose) log_error(`${prefix}path not found: '${path}'`);
|
|
3596
|
+
return;
|
|
3597
|
+
}
|
|
3598
|
+
if (!(is_object(kw) || is_array(kw))) {
|
|
3599
|
+
log_error(`${prefix}kw must be list or dict: '${path}'`);
|
|
3586
3600
|
return;
|
|
3587
3601
|
}
|
|
3588
3602
|
}
|
|
3589
|
-
|
|
3603
|
+
let value = kw[ss[len - 1]];
|
|
3604
|
+
if (value === void 0 && verbose) log_error(`${prefix}path not found: '${path}'`);
|
|
3605
|
+
return value;
|
|
3590
3606
|
}
|
|
3591
3607
|
/************************************************************
|
|
3592
3608
|
*
|
|
@@ -3627,7 +3643,7 @@
|
|
|
3627
3643
|
const extract = flag && flag & kw_flag_t.KW_EXTRACT;
|
|
3628
3644
|
const wild = flag && flag & kw_flag_t.KW_WILD_NUMBER;
|
|
3629
3645
|
if (b === void 0) {
|
|
3630
|
-
if (create) {
|
|
3646
|
+
if (create && kw) {
|
|
3631
3647
|
let v = Boolean(default_value);
|
|
3632
3648
|
kw_set_dict_value(gobj, kw, path, v);
|
|
3633
3649
|
return v;
|
|
@@ -3695,7 +3711,7 @@
|
|
|
3695
3711
|
const extract = flag && flag & kw_flag_t.KW_EXTRACT;
|
|
3696
3712
|
const wild = flag && flag & kw_flag_t.KW_WILD_NUMBER;
|
|
3697
3713
|
if (v === void 0) {
|
|
3698
|
-
if (create) {
|
|
3714
|
+
if (create && kw) {
|
|
3699
3715
|
let v = parseInt(default_value);
|
|
3700
3716
|
kw_set_dict_value(gobj, kw, path, v);
|
|
3701
3717
|
return v;
|
|
@@ -3742,7 +3758,7 @@
|
|
|
3742
3758
|
const extract = flag && flag & kw_flag_t.KW_EXTRACT;
|
|
3743
3759
|
const wild = flag && flag & kw_flag_t.KW_WILD_NUMBER;
|
|
3744
3760
|
if (v === void 0) {
|
|
3745
|
-
if (create) {
|
|
3761
|
+
if (create && kw) {
|
|
3746
3762
|
let v = Number(default_value);
|
|
3747
3763
|
kw_set_dict_value(gobj, kw, path, v);
|
|
3748
3764
|
return v;
|
|
@@ -3812,7 +3828,7 @@
|
|
|
3812
3828
|
const create = flag && flag & kw_flag_t.KW_CREATE;
|
|
3813
3829
|
const extract = flag && flag & kw_flag_t.KW_EXTRACT;
|
|
3814
3830
|
if (v === void 0) {
|
|
3815
|
-
if (create) {
|
|
3831
|
+
if (create && kw) {
|
|
3816
3832
|
kw_set_dict_value(gobj, kw, path, is_string(default_value) ? default_value : null);
|
|
3817
3833
|
return default_value;
|
|
3818
3834
|
} else if (required && !kw_path_holds_key(kw, path)) {
|