@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.iife.js
CHANGED
|
@@ -3216,8 +3216,8 @@ var gobjJs = (function(exports) {
|
|
|
3216
3216
|
}
|
|
3217
3217
|
function trace_json(jn, msg) {
|
|
3218
3218
|
if (console_wants("json", msg)) {
|
|
3219
|
-
if (msg)
|
|
3220
|
-
|
|
3219
|
+
if (msg) _console.warn("=====> " + msg);
|
|
3220
|
+
_console.dir(jn);
|
|
3221
3221
|
}
|
|
3222
3222
|
emit_log_callback("json", jn, current_timestamp());
|
|
3223
3223
|
}
|
|
@@ -3605,7 +3605,11 @@ var gobjJs = (function(exports) {
|
|
|
3605
3605
|
return 0;
|
|
3606
3606
|
}
|
|
3607
3607
|
/************************************************************
|
|
3608
|
-
*
|
|
3608
|
+
* As the C kw_get_bool(): a boolean found is the answer, and
|
|
3609
|
+
* anything else gives the default back -- unless KW_WILD_NUMBER
|
|
3610
|
+
* asks to read a number (0 is false), a string ("true"/"false"
|
|
3611
|
+
* in any case, else its integer) or null (false). Before gobj-js
|
|
3612
|
+
* 7.25.2 the value went through Boolean(), so "false" was TRUE.
|
|
3609
3613
|
************************************************************/
|
|
3610
3614
|
function kw_get_bool(gobj, kw, path, default_value, flag) {
|
|
3611
3615
|
if (gobj && !is_gobj(gobj)) log_error(`GObj bad instanceof`);
|
|
@@ -3613,6 +3617,7 @@ var gobjJs = (function(exports) {
|
|
|
3613
3617
|
const required = flag && flag & kw_flag_t.KW_REQUIRED;
|
|
3614
3618
|
const create = flag && flag & kw_flag_t.KW_CREATE;
|
|
3615
3619
|
const extract = flag && flag & kw_flag_t.KW_EXTRACT;
|
|
3620
|
+
const wild = flag && flag & kw_flag_t.KW_WILD_NUMBER;
|
|
3616
3621
|
if (b === void 0) {
|
|
3617
3622
|
if (create) {
|
|
3618
3623
|
let v = Boolean(default_value);
|
|
@@ -3624,8 +3629,23 @@ var gobjJs = (function(exports) {
|
|
|
3624
3629
|
}
|
|
3625
3630
|
return Boolean(default_value);
|
|
3626
3631
|
}
|
|
3632
|
+
let value;
|
|
3633
|
+
if (is_boolean(b)) value = b;
|
|
3634
|
+
else if (wild && is_number(b)) value = b !== 0;
|
|
3635
|
+
else if (wild && is_string(b)) {
|
|
3636
|
+
if (b.toLowerCase() === "true") value = true;
|
|
3637
|
+
else if (b.toLowerCase() === "false") value = false;
|
|
3638
|
+
else value = (parseInt(b) || 0) !== 0;
|
|
3639
|
+
} else if (wild && b === null) value = false;
|
|
3640
|
+
else {
|
|
3641
|
+
if (required) {
|
|
3642
|
+
log_error(`${gobj_short_name(gobj)}: path value MUST BE a boolean: ${path}`);
|
|
3643
|
+
trace_msg(kw);
|
|
3644
|
+
}
|
|
3645
|
+
return Boolean(default_value);
|
|
3646
|
+
}
|
|
3627
3647
|
if (extract) kw_delete(gobj, kw, path);
|
|
3628
|
-
return
|
|
3648
|
+
return value;
|
|
3629
3649
|
}
|
|
3630
3650
|
/************************************************************
|
|
3631
3651
|
*
|
|
@@ -3688,7 +3708,12 @@ var gobjJs = (function(exports) {
|
|
|
3688
3708
|
return Number(v);
|
|
3689
3709
|
}
|
|
3690
3710
|
/************************************************************
|
|
3691
|
-
*
|
|
3711
|
+
* The default comes back AS GIVEN, as in the C kw_get_str()
|
|
3712
|
+
* (`const char *default_value`, where 0 is NULL). Turned into
|
|
3713
|
+
* a string, a default of 0 or null was "0" or "null", which is
|
|
3714
|
+
* TRUE: an `if(value)` on the answer took an absent key for a
|
|
3715
|
+
* present one. KW_CREATE stores a string default, and null for
|
|
3716
|
+
* any other, as C stores json_null() for a NULL default.
|
|
3692
3717
|
************************************************************/
|
|
3693
3718
|
function kw_get_str(gobj, kw, path, default_value, flag) {
|
|
3694
3719
|
if (gobj && !is_gobj(gobj)) log_error(`GObj bad instanceof`);
|
|
@@ -3698,14 +3723,13 @@ var gobjJs = (function(exports) {
|
|
|
3698
3723
|
const extract = flag && flag & kw_flag_t.KW_EXTRACT;
|
|
3699
3724
|
if (v === void 0) {
|
|
3700
3725
|
if (create) {
|
|
3701
|
-
|
|
3702
|
-
|
|
3703
|
-
return v;
|
|
3726
|
+
kw_set_dict_value(gobj, kw, path, is_string(default_value) ? default_value : null);
|
|
3727
|
+
return default_value;
|
|
3704
3728
|
} else if (required) {
|
|
3705
3729
|
log_error(`path not found: '${path}'`);
|
|
3706
3730
|
trace_json(kw);
|
|
3707
3731
|
}
|
|
3708
|
-
return
|
|
3732
|
+
return default_value;
|
|
3709
3733
|
}
|
|
3710
3734
|
if (extract) kw_delete(gobj, kw, path);
|
|
3711
3735
|
if (!is_string(v)) {
|
|
@@ -3713,9 +3737,9 @@ var gobjJs = (function(exports) {
|
|
|
3713
3737
|
log_error(`${gobj_short_name(gobj)}: path value MUST BE a string: ${path}`);
|
|
3714
3738
|
trace_msg(kw);
|
|
3715
3739
|
}
|
|
3716
|
-
return
|
|
3740
|
+
return default_value;
|
|
3717
3741
|
}
|
|
3718
|
-
return
|
|
3742
|
+
return v;
|
|
3719
3743
|
}
|
|
3720
3744
|
/************************************************************
|
|
3721
3745
|
*
|
|
@@ -3741,7 +3765,11 @@ var gobjJs = (function(exports) {
|
|
|
3741
3765
|
return v;
|
|
3742
3766
|
}
|
|
3743
3767
|
/************************************************************
|
|
3744
|
-
*
|
|
3768
|
+
* As the C kw_get_dict(): a dict found is the answer, and
|
|
3769
|
+
* anything else gives the default back AS GIVEN (null stays
|
|
3770
|
+
* null). KW_CREATE stores a dict default, never a null one.
|
|
3771
|
+
* Before gobj-js 7.25.2 the answer went through Object(), so a
|
|
3772
|
+
* null default came back as {} and a 0 as a Number object.
|
|
3745
3773
|
************************************************************/
|
|
3746
3774
|
function kw_get_dict(gobj, kw, path, default_value, flag) {
|
|
3747
3775
|
if (gobj && !is_gobj(gobj)) log_error(`GObj bad instanceof`);
|
|
@@ -3750,25 +3778,25 @@ var gobjJs = (function(exports) {
|
|
|
3750
3778
|
const create = flag && flag & kw_flag_t.KW_CREATE;
|
|
3751
3779
|
const extract = flag && flag & kw_flag_t.KW_EXTRACT;
|
|
3752
3780
|
if (v === void 0) {
|
|
3753
|
-
if (create) {
|
|
3754
|
-
|
|
3755
|
-
|
|
3756
|
-
|
|
3757
|
-
|
|
3781
|
+
if (create && is_object(default_value) && kw) {
|
|
3782
|
+
kw_set_dict_value(gobj, kw, path, default_value);
|
|
3783
|
+
return default_value;
|
|
3784
|
+
}
|
|
3785
|
+
if (required) {
|
|
3758
3786
|
log_error(`path not found: '${path}'`);
|
|
3759
3787
|
trace_json(kw);
|
|
3760
3788
|
}
|
|
3761
|
-
return
|
|
3789
|
+
return default_value;
|
|
3762
3790
|
}
|
|
3763
|
-
if (extract) kw_delete(gobj, kw, path);
|
|
3764
3791
|
if (!is_object(v)) {
|
|
3765
3792
|
if (required) {
|
|
3766
|
-
log_error(
|
|
3793
|
+
log_error(`${gobj_short_name(gobj)}: path value MUST BE a dict: ${path}`);
|
|
3767
3794
|
trace_msg(kw);
|
|
3768
3795
|
}
|
|
3769
|
-
return
|
|
3796
|
+
return default_value;
|
|
3770
3797
|
}
|
|
3771
|
-
|
|
3798
|
+
if (extract) kw_delete(gobj, kw, path);
|
|
3799
|
+
return v;
|
|
3772
3800
|
}
|
|
3773
3801
|
/************************************************************
|
|
3774
3802
|
*
|
|
@@ -3794,7 +3822,12 @@ var gobjJs = (function(exports) {
|
|
|
3794
3822
|
return v;
|
|
3795
3823
|
}
|
|
3796
3824
|
/************************************************************
|
|
3797
|
-
*
|
|
3825
|
+
* As the C kw_get_list(): a list found is the answer, and
|
|
3826
|
+
* anything else gives the default back AS GIVEN. KW_CREATE
|
|
3827
|
+
* stores a list default, never a null one. Before gobj-js
|
|
3828
|
+
* 7.25.2 the answer went through Array(), which WRAPS its
|
|
3829
|
+
* argument: a list found came back as [list], a default of []
|
|
3830
|
+
* as [[]] and a null one as [null].
|
|
3798
3831
|
************************************************************/
|
|
3799
3832
|
function kw_get_list(gobj, kw, path, default_value, flag) {
|
|
3800
3833
|
if (gobj && !is_gobj(gobj)) log_error(`GObj bad instanceof`);
|
|
@@ -3803,25 +3836,25 @@ var gobjJs = (function(exports) {
|
|
|
3803
3836
|
const create = flag && flag & kw_flag_t.KW_CREATE;
|
|
3804
3837
|
const extract = flag && flag & kw_flag_t.KW_EXTRACT;
|
|
3805
3838
|
if (v === void 0) {
|
|
3806
|
-
if (create) {
|
|
3807
|
-
|
|
3808
|
-
|
|
3809
|
-
|
|
3810
|
-
|
|
3839
|
+
if (create && is_array(default_value) && kw) {
|
|
3840
|
+
kw_set_dict_value(gobj, kw, path, default_value);
|
|
3841
|
+
return default_value;
|
|
3842
|
+
}
|
|
3843
|
+
if (required) {
|
|
3811
3844
|
log_error(`path not found: '${path}'`);
|
|
3812
3845
|
trace_json(kw);
|
|
3813
3846
|
}
|
|
3814
|
-
return
|
|
3847
|
+
return default_value;
|
|
3815
3848
|
}
|
|
3816
|
-
if (extract) kw_delete(gobj, kw, path);
|
|
3817
3849
|
if (!is_array(v)) {
|
|
3818
3850
|
if (required) {
|
|
3819
|
-
log_error(
|
|
3851
|
+
log_error(`${gobj_short_name(gobj)}: path value MUST BE an array: ${path}`);
|
|
3820
3852
|
trace_msg(kw);
|
|
3821
3853
|
}
|
|
3822
|
-
return
|
|
3854
|
+
return default_value;
|
|
3823
3855
|
}
|
|
3824
|
-
|
|
3856
|
+
if (extract) kw_delete(gobj, kw, path);
|
|
3857
|
+
return v;
|
|
3825
3858
|
}
|
|
3826
3859
|
/************************************************************
|
|
3827
3860
|
*
|
|
@@ -3857,7 +3890,7 @@ var gobjJs = (function(exports) {
|
|
|
3857
3890
|
log_error("kw is not an object");
|
|
3858
3891
|
return -1;
|
|
3859
3892
|
}
|
|
3860
|
-
let subdict = kw_get_dict(gobj, kw, path, {},
|
|
3893
|
+
let subdict = kw_get_dict(gobj, kw, path, {}, kw_flag_t.KW_CREATE);
|
|
3861
3894
|
if (!is_object(subdict)) {
|
|
3862
3895
|
log_error("subdict is not an object");
|
|
3863
3896
|
return -1;
|