@yuneta/gobj-js 7.25.1 → 7.25.2
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 +6 -0
- package/dist/gobj-js.cjs.js +56 -27
- package/dist/gobj-js.cjs.js.map +1 -1
- package/dist/gobj-js.cjs.min.js +140 -146
- package/dist/gobj-js.cjs.min.js.map +1 -1
- package/dist/gobj-js.es.js +56 -27
- package/dist/gobj-js.es.js.map +1 -1
- package/dist/gobj-js.es.min.js +276 -282
- package/dist/gobj-js.es.min.js.map +1 -1
- package/dist/gobj-js.iife.js +56 -27
- package/dist/gobj-js.iife.js.map +1 -1
- package/dist/gobj-js.iife.min.js +216 -222
- package/dist/gobj-js.iife.min.js.map +1 -1
- package/dist/gobj-js.umd.js +56 -27
- package/dist/gobj-js.umd.js.map +1 -1
- package/dist/gobj-js.umd.min.js +313 -319
- package/dist/gobj-js.umd.min.js.map +1 -1
- package/package.json +1 -1
package/dist/gobj-js.umd.js
CHANGED
|
@@ -3218,8 +3218,8 @@
|
|
|
3218
3218
|
}
|
|
3219
3219
|
function trace_json(jn, msg) {
|
|
3220
3220
|
if (console_wants("json", msg)) {
|
|
3221
|
-
if (msg)
|
|
3222
|
-
|
|
3221
|
+
if (msg) _console.warn("=====> " + msg);
|
|
3222
|
+
_console.dir(jn);
|
|
3223
3223
|
}
|
|
3224
3224
|
emit_log_callback("json", jn, current_timestamp());
|
|
3225
3225
|
}
|
|
@@ -3607,7 +3607,11 @@
|
|
|
3607
3607
|
return 0;
|
|
3608
3608
|
}
|
|
3609
3609
|
/************************************************************
|
|
3610
|
-
*
|
|
3610
|
+
* As the C kw_get_bool(): a boolean found is the answer, and
|
|
3611
|
+
* anything else gives the default back -- unless KW_WILD_NUMBER
|
|
3612
|
+
* asks to read a number (0 is false), a string ("true"/"false"
|
|
3613
|
+
* in any case, else its integer) or null (false). Before gobj-js
|
|
3614
|
+
* 7.25.2 the value went through Boolean(), so "false" was TRUE.
|
|
3611
3615
|
************************************************************/
|
|
3612
3616
|
function kw_get_bool(gobj, kw, path, default_value, flag) {
|
|
3613
3617
|
if (gobj && !is_gobj(gobj)) log_error(`GObj bad instanceof`);
|
|
@@ -3615,6 +3619,7 @@
|
|
|
3615
3619
|
const required = flag && flag & kw_flag_t.KW_REQUIRED;
|
|
3616
3620
|
const create = flag && flag & kw_flag_t.KW_CREATE;
|
|
3617
3621
|
const extract = flag && flag & kw_flag_t.KW_EXTRACT;
|
|
3622
|
+
const wild = flag && flag & kw_flag_t.KW_WILD_NUMBER;
|
|
3618
3623
|
if (b === void 0) {
|
|
3619
3624
|
if (create) {
|
|
3620
3625
|
let v = Boolean(default_value);
|
|
@@ -3626,8 +3631,23 @@
|
|
|
3626
3631
|
}
|
|
3627
3632
|
return Boolean(default_value);
|
|
3628
3633
|
}
|
|
3634
|
+
let value;
|
|
3635
|
+
if (is_boolean(b)) value = b;
|
|
3636
|
+
else if (wild && is_number(b)) value = b !== 0;
|
|
3637
|
+
else if (wild && is_string(b)) {
|
|
3638
|
+
if (b.toLowerCase() === "true") value = true;
|
|
3639
|
+
else if (b.toLowerCase() === "false") value = false;
|
|
3640
|
+
else value = (parseInt(b) || 0) !== 0;
|
|
3641
|
+
} else if (wild && b === null) value = false;
|
|
3642
|
+
else {
|
|
3643
|
+
if (required) {
|
|
3644
|
+
log_error(`${gobj_short_name(gobj)}: path value MUST BE a boolean: ${path}`);
|
|
3645
|
+
trace_msg(kw);
|
|
3646
|
+
}
|
|
3647
|
+
return Boolean(default_value);
|
|
3648
|
+
}
|
|
3629
3649
|
if (extract) kw_delete(gobj, kw, path);
|
|
3630
|
-
return
|
|
3650
|
+
return value;
|
|
3631
3651
|
}
|
|
3632
3652
|
/************************************************************
|
|
3633
3653
|
*
|
|
@@ -3747,7 +3767,11 @@
|
|
|
3747
3767
|
return v;
|
|
3748
3768
|
}
|
|
3749
3769
|
/************************************************************
|
|
3750
|
-
*
|
|
3770
|
+
* As the C kw_get_dict(): a dict found is the answer, and
|
|
3771
|
+
* anything else gives the default back AS GIVEN (null stays
|
|
3772
|
+
* null). KW_CREATE stores a dict default, never a null one.
|
|
3773
|
+
* Before gobj-js 7.25.2 the answer went through Object(), so a
|
|
3774
|
+
* null default came back as {} and a 0 as a Number object.
|
|
3751
3775
|
************************************************************/
|
|
3752
3776
|
function kw_get_dict(gobj, kw, path, default_value, flag) {
|
|
3753
3777
|
if (gobj && !is_gobj(gobj)) log_error(`GObj bad instanceof`);
|
|
@@ -3756,25 +3780,25 @@
|
|
|
3756
3780
|
const create = flag && flag & kw_flag_t.KW_CREATE;
|
|
3757
3781
|
const extract = flag && flag & kw_flag_t.KW_EXTRACT;
|
|
3758
3782
|
if (v === void 0) {
|
|
3759
|
-
if (create) {
|
|
3760
|
-
|
|
3761
|
-
|
|
3762
|
-
|
|
3763
|
-
|
|
3783
|
+
if (create && is_object(default_value) && kw) {
|
|
3784
|
+
kw_set_dict_value(gobj, kw, path, default_value);
|
|
3785
|
+
return default_value;
|
|
3786
|
+
}
|
|
3787
|
+
if (required) {
|
|
3764
3788
|
log_error(`path not found: '${path}'`);
|
|
3765
3789
|
trace_json(kw);
|
|
3766
3790
|
}
|
|
3767
|
-
return
|
|
3791
|
+
return default_value;
|
|
3768
3792
|
}
|
|
3769
|
-
if (extract) kw_delete(gobj, kw, path);
|
|
3770
3793
|
if (!is_object(v)) {
|
|
3771
3794
|
if (required) {
|
|
3772
|
-
log_error(
|
|
3795
|
+
log_error(`${gobj_short_name(gobj)}: path value MUST BE a dict: ${path}`);
|
|
3773
3796
|
trace_msg(kw);
|
|
3774
3797
|
}
|
|
3775
|
-
return
|
|
3798
|
+
return default_value;
|
|
3776
3799
|
}
|
|
3777
|
-
|
|
3800
|
+
if (extract) kw_delete(gobj, kw, path);
|
|
3801
|
+
return v;
|
|
3778
3802
|
}
|
|
3779
3803
|
/************************************************************
|
|
3780
3804
|
*
|
|
@@ -3800,7 +3824,12 @@
|
|
|
3800
3824
|
return v;
|
|
3801
3825
|
}
|
|
3802
3826
|
/************************************************************
|
|
3803
|
-
*
|
|
3827
|
+
* As the C kw_get_list(): a list found is the answer, and
|
|
3828
|
+
* anything else gives the default back AS GIVEN. KW_CREATE
|
|
3829
|
+
* stores a list default, never a null one. Before gobj-js
|
|
3830
|
+
* 7.25.2 the answer went through Array(), which WRAPS its
|
|
3831
|
+
* argument: a list found came back as [list], a default of []
|
|
3832
|
+
* as [[]] and a null one as [null].
|
|
3804
3833
|
************************************************************/
|
|
3805
3834
|
function kw_get_list(gobj, kw, path, default_value, flag) {
|
|
3806
3835
|
if (gobj && !is_gobj(gobj)) log_error(`GObj bad instanceof`);
|
|
@@ -3809,25 +3838,25 @@
|
|
|
3809
3838
|
const create = flag && flag & kw_flag_t.KW_CREATE;
|
|
3810
3839
|
const extract = flag && flag & kw_flag_t.KW_EXTRACT;
|
|
3811
3840
|
if (v === void 0) {
|
|
3812
|
-
if (create) {
|
|
3813
|
-
|
|
3814
|
-
|
|
3815
|
-
|
|
3816
|
-
|
|
3841
|
+
if (create && is_array(default_value) && kw) {
|
|
3842
|
+
kw_set_dict_value(gobj, kw, path, default_value);
|
|
3843
|
+
return default_value;
|
|
3844
|
+
}
|
|
3845
|
+
if (required) {
|
|
3817
3846
|
log_error(`path not found: '${path}'`);
|
|
3818
3847
|
trace_json(kw);
|
|
3819
3848
|
}
|
|
3820
|
-
return
|
|
3849
|
+
return default_value;
|
|
3821
3850
|
}
|
|
3822
|
-
if (extract) kw_delete(gobj, kw, path);
|
|
3823
3851
|
if (!is_array(v)) {
|
|
3824
3852
|
if (required) {
|
|
3825
|
-
log_error(
|
|
3853
|
+
log_error(`${gobj_short_name(gobj)}: path value MUST BE an array: ${path}`);
|
|
3826
3854
|
trace_msg(kw);
|
|
3827
3855
|
}
|
|
3828
|
-
return
|
|
3856
|
+
return default_value;
|
|
3829
3857
|
}
|
|
3830
|
-
|
|
3858
|
+
if (extract) kw_delete(gobj, kw, path);
|
|
3859
|
+
return v;
|
|
3831
3860
|
}
|
|
3832
3861
|
/************************************************************
|
|
3833
3862
|
*
|
|
@@ -3863,7 +3892,7 @@
|
|
|
3863
3892
|
log_error("kw is not an object");
|
|
3864
3893
|
return -1;
|
|
3865
3894
|
}
|
|
3866
|
-
let subdict = kw_get_dict(gobj, kw, path, {},
|
|
3895
|
+
let subdict = kw_get_dict(gobj, kw, path, {}, kw_flag_t.KW_CREATE);
|
|
3867
3896
|
if (!is_object(subdict)) {
|
|
3868
3897
|
log_error("subdict is not an object");
|
|
3869
3898
|
return -1;
|