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