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