@yuneta/gobj-js 7.25.0 → 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 +67 -34
- package/dist/gobj-js.cjs.js.map +1 -1
- package/dist/gobj-js.cjs.min.js +141 -154
- package/dist/gobj-js.cjs.min.js.map +1 -1
- package/dist/gobj-js.es.js +67 -34
- package/dist/gobj-js.es.js.map +1 -1
- package/dist/gobj-js.es.min.js +224 -237
- package/dist/gobj-js.es.min.js.map +1 -1
- package/dist/gobj-js.iife.js +67 -34
- package/dist/gobj-js.iife.js.map +1 -1
- package/dist/gobj-js.iife.min.js +216 -229
- package/dist/gobj-js.iife.min.js.map +1 -1
- package/dist/gobj-js.umd.js +67 -34
- package/dist/gobj-js.umd.js.map +1 -1
- package/dist/gobj-js.umd.min.js +313 -326
- 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
|
*
|
|
@@ -3690,7 +3710,12 @@
|
|
|
3690
3710
|
return Number(v);
|
|
3691
3711
|
}
|
|
3692
3712
|
/************************************************************
|
|
3693
|
-
*
|
|
3713
|
+
* The default comes back AS GIVEN, as in the C kw_get_str()
|
|
3714
|
+
* (`const char *default_value`, where 0 is NULL). Turned into
|
|
3715
|
+
* a string, a default of 0 or null was "0" or "null", which is
|
|
3716
|
+
* TRUE: an `if(value)` on the answer took an absent key for a
|
|
3717
|
+
* present one. KW_CREATE stores a string default, and null for
|
|
3718
|
+
* any other, as C stores json_null() for a NULL default.
|
|
3694
3719
|
************************************************************/
|
|
3695
3720
|
function kw_get_str(gobj, kw, path, default_value, flag) {
|
|
3696
3721
|
if (gobj && !is_gobj(gobj)) log_error(`GObj bad instanceof`);
|
|
@@ -3700,14 +3725,13 @@
|
|
|
3700
3725
|
const extract = flag && flag & kw_flag_t.KW_EXTRACT;
|
|
3701
3726
|
if (v === void 0) {
|
|
3702
3727
|
if (create) {
|
|
3703
|
-
|
|
3704
|
-
|
|
3705
|
-
return v;
|
|
3728
|
+
kw_set_dict_value(gobj, kw, path, is_string(default_value) ? default_value : null);
|
|
3729
|
+
return default_value;
|
|
3706
3730
|
} else if (required) {
|
|
3707
3731
|
log_error(`path not found: '${path}'`);
|
|
3708
3732
|
trace_json(kw);
|
|
3709
3733
|
}
|
|
3710
|
-
return
|
|
3734
|
+
return default_value;
|
|
3711
3735
|
}
|
|
3712
3736
|
if (extract) kw_delete(gobj, kw, path);
|
|
3713
3737
|
if (!is_string(v)) {
|
|
@@ -3715,9 +3739,9 @@
|
|
|
3715
3739
|
log_error(`${gobj_short_name(gobj)}: path value MUST BE a string: ${path}`);
|
|
3716
3740
|
trace_msg(kw);
|
|
3717
3741
|
}
|
|
3718
|
-
return
|
|
3742
|
+
return default_value;
|
|
3719
3743
|
}
|
|
3720
|
-
return
|
|
3744
|
+
return v;
|
|
3721
3745
|
}
|
|
3722
3746
|
/************************************************************
|
|
3723
3747
|
*
|
|
@@ -3743,7 +3767,11 @@
|
|
|
3743
3767
|
return v;
|
|
3744
3768
|
}
|
|
3745
3769
|
/************************************************************
|
|
3746
|
-
*
|
|
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.
|
|
3747
3775
|
************************************************************/
|
|
3748
3776
|
function kw_get_dict(gobj, kw, path, default_value, flag) {
|
|
3749
3777
|
if (gobj && !is_gobj(gobj)) log_error(`GObj bad instanceof`);
|
|
@@ -3752,25 +3780,25 @@
|
|
|
3752
3780
|
const create = flag && flag & kw_flag_t.KW_CREATE;
|
|
3753
3781
|
const extract = flag && flag & kw_flag_t.KW_EXTRACT;
|
|
3754
3782
|
if (v === void 0) {
|
|
3755
|
-
if (create) {
|
|
3756
|
-
|
|
3757
|
-
|
|
3758
|
-
|
|
3759
|
-
|
|
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) {
|
|
3760
3788
|
log_error(`path not found: '${path}'`);
|
|
3761
3789
|
trace_json(kw);
|
|
3762
3790
|
}
|
|
3763
|
-
return
|
|
3791
|
+
return default_value;
|
|
3764
3792
|
}
|
|
3765
|
-
if (extract) kw_delete(gobj, kw, path);
|
|
3766
3793
|
if (!is_object(v)) {
|
|
3767
3794
|
if (required) {
|
|
3768
|
-
log_error(
|
|
3795
|
+
log_error(`${gobj_short_name(gobj)}: path value MUST BE a dict: ${path}`);
|
|
3769
3796
|
trace_msg(kw);
|
|
3770
3797
|
}
|
|
3771
|
-
return
|
|
3798
|
+
return default_value;
|
|
3772
3799
|
}
|
|
3773
|
-
|
|
3800
|
+
if (extract) kw_delete(gobj, kw, path);
|
|
3801
|
+
return v;
|
|
3774
3802
|
}
|
|
3775
3803
|
/************************************************************
|
|
3776
3804
|
*
|
|
@@ -3796,7 +3824,12 @@
|
|
|
3796
3824
|
return v;
|
|
3797
3825
|
}
|
|
3798
3826
|
/************************************************************
|
|
3799
|
-
*
|
|
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].
|
|
3800
3833
|
************************************************************/
|
|
3801
3834
|
function kw_get_list(gobj, kw, path, default_value, flag) {
|
|
3802
3835
|
if (gobj && !is_gobj(gobj)) log_error(`GObj bad instanceof`);
|
|
@@ -3805,25 +3838,25 @@
|
|
|
3805
3838
|
const create = flag && flag & kw_flag_t.KW_CREATE;
|
|
3806
3839
|
const extract = flag && flag & kw_flag_t.KW_EXTRACT;
|
|
3807
3840
|
if (v === void 0) {
|
|
3808
|
-
if (create) {
|
|
3809
|
-
|
|
3810
|
-
|
|
3811
|
-
|
|
3812
|
-
|
|
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) {
|
|
3813
3846
|
log_error(`path not found: '${path}'`);
|
|
3814
3847
|
trace_json(kw);
|
|
3815
3848
|
}
|
|
3816
|
-
return
|
|
3849
|
+
return default_value;
|
|
3817
3850
|
}
|
|
3818
|
-
if (extract) kw_delete(gobj, kw, path);
|
|
3819
3851
|
if (!is_array(v)) {
|
|
3820
3852
|
if (required) {
|
|
3821
|
-
log_error(
|
|
3853
|
+
log_error(`${gobj_short_name(gobj)}: path value MUST BE an array: ${path}`);
|
|
3822
3854
|
trace_msg(kw);
|
|
3823
3855
|
}
|
|
3824
|
-
return
|
|
3856
|
+
return default_value;
|
|
3825
3857
|
}
|
|
3826
|
-
|
|
3858
|
+
if (extract) kw_delete(gobj, kw, path);
|
|
3859
|
+
return v;
|
|
3827
3860
|
}
|
|
3828
3861
|
/************************************************************
|
|
3829
3862
|
*
|
|
@@ -3859,7 +3892,7 @@
|
|
|
3859
3892
|
log_error("kw is not an object");
|
|
3860
3893
|
return -1;
|
|
3861
3894
|
}
|
|
3862
|
-
let subdict = kw_get_dict(gobj, kw, path, {},
|
|
3895
|
+
let subdict = kw_get_dict(gobj, kw, path, {}, kw_flag_t.KW_CREATE);
|
|
3863
3896
|
if (!is_object(subdict)) {
|
|
3864
3897
|
log_error("subdict is not an object");
|
|
3865
3898
|
return -1;
|