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