@xuda.io/xuda-dbs-plugin-xuda 1.0.135 → 1.0.137
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/package.json +1 -1
- package/studio.mjs +10 -324
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@xuda.io/xuda-dbs-plugin-xuda",
|
3
|
-
"version": "1.0.
|
3
|
+
"version": "1.0.137",
|
4
4
|
"description": "Xuda Database Socket for Xuda's proprietary structure powered by CouchDB",
|
5
5
|
"scripts": {
|
6
6
|
"pub": "npm version patch --force && npm publish --access public"
|
package/studio.mjs
CHANGED
@@ -722,329 +722,6 @@ const query_db = async function (e, db, table_obj) {
|
|
722
722
|
return raw_data();
|
723
723
|
};
|
724
724
|
|
725
|
-
// var limit = 99999;
|
726
|
-
// var skip = 0;
|
727
|
-
|
728
|
-
// if (e.limit) {
|
729
|
-
// limit = Number(e.limit);
|
730
|
-
// }
|
731
|
-
|
732
|
-
// if (e.skip) {
|
733
|
-
// skip = JSON.parse(e.skip);
|
734
|
-
// }
|
735
|
-
|
736
|
-
// var fields = [];
|
737
|
-
// if (e.fields) {
|
738
|
-
// for (const [key, val] of Object.entries(
|
739
|
-
// typeof e.fields === "string" ? e.fields.split(",") : e.fields
|
740
|
-
// )) {
|
741
|
-
// fields.push(val);
|
742
|
-
// }
|
743
|
-
// } else {
|
744
|
-
// for (const [key, val] of Object.entries(table_obj.tableFields)) {
|
745
|
-
// fields.push(val.data.field_id);
|
746
|
-
// }
|
747
|
-
// }
|
748
|
-
|
749
|
-
// var data = {};
|
750
|
-
// var from = e.filter_from ? JSON.parse(e.filter_from) : {};
|
751
|
-
// var to = e.filter_to ? JSON.parse(e.filter_to) : {};
|
752
|
-
// var sort = [];
|
753
|
-
// for (const [key, val] of Object.entries(from)) {
|
754
|
-
// var field_name = key;
|
755
|
-
|
756
|
-
// sort.push(field_name);
|
757
|
-
|
758
|
-
// if (val === to[key]) {
|
759
|
-
// data[field_name] = val;
|
760
|
-
// } else {
|
761
|
-
// data[field_name] = { $gte: val };
|
762
|
-
// }
|
763
|
-
// }
|
764
|
-
|
765
|
-
// for (const [key, val] of Object.entries(to)) {
|
766
|
-
// var field_name = key;
|
767
|
-
|
768
|
-
// if (val !== from[key]) {
|
769
|
-
// data[field_name]["$lte"] = val;
|
770
|
-
// }
|
771
|
-
// }
|
772
|
-
|
773
|
-
// var selector = {};
|
774
|
-
|
775
|
-
// if (from && !_.isEmpty(from)) {
|
776
|
-
// selector = data;
|
777
|
-
// }
|
778
|
-
|
779
|
-
// var opt = {
|
780
|
-
// selector,
|
781
|
-
// limit: limit,
|
782
|
-
// skip: skip,
|
783
|
-
// fields: fields,
|
784
|
-
// };
|
785
|
-
|
786
|
-
// if (sort.length) {
|
787
|
-
// opt.sort = sort;
|
788
|
-
// }
|
789
|
-
|
790
|
-
// if (e?.sort_fields?.length) {
|
791
|
-
// opt.sort = e.sort_fields;
|
792
|
-
// if (opt.sort) {
|
793
|
-
// for (const [key, val] of Object.entries(opt.sort)) {
|
794
|
-
// var field_name = val.colId;
|
795
|
-
// opt.sort[key] = {
|
796
|
-
// ["udfData.data." + field_name]: val.sort,
|
797
|
-
// };
|
798
|
-
// }
|
799
|
-
// }
|
800
|
-
// }
|
801
|
-
|
802
|
-
// if (e.grid_filter_info) {
|
803
|
-
// for (const [key, val] of Object.entries(e.grid_filter_info)) {
|
804
|
-
// var field_name = key;
|
805
|
-
// var condition = "$and";
|
806
|
-
// const make_selector = function (val) {
|
807
|
-
// var value = "";
|
808
|
-
// var operator = "";
|
809
|
-
// var value_to = "";
|
810
|
-
// var operator_to = "";
|
811
|
-
|
812
|
-
// if (val.filterType === "date") {
|
813
|
-
// var date = val.dateFrom.substr(0, 10);
|
814
|
-
// switch (val.type) {
|
815
|
-
// case "equals":
|
816
|
-
// operator = "$regex";
|
817
|
-
// value = `^${date}`;
|
818
|
-
// break;
|
819
|
-
|
820
|
-
// case "greaterThan":
|
821
|
-
// operator = "$gt";
|
822
|
-
// value = `${date}`;
|
823
|
-
// break;
|
824
|
-
|
825
|
-
// case "lessThan":
|
826
|
-
// operator = "$lt";
|
827
|
-
// value = `${date}`;
|
828
|
-
// break;
|
829
|
-
|
830
|
-
// case "blank":
|
831
|
-
// operator = "$eq";
|
832
|
-
// value = "";
|
833
|
-
// break;
|
834
|
-
|
835
|
-
// case "inRange":
|
836
|
-
// operator = "$gte";
|
837
|
-
// value = date;
|
838
|
-
// operator_to = "$lte";
|
839
|
-
// value_to = val.dateTo.substr(0, 10);
|
840
|
-
// break;
|
841
|
-
|
842
|
-
// case "notEqual":
|
843
|
-
// operator = "$regex";
|
844
|
-
// value = `^((?!${date}).)*$`;
|
845
|
-
// break;
|
846
|
-
|
847
|
-
// case "notBlank":
|
848
|
-
// operator = "$ne";
|
849
|
-
// value = "";
|
850
|
-
// break;
|
851
|
-
|
852
|
-
// default:
|
853
|
-
// operator = "$regex";
|
854
|
-
// value = `^${date}`;
|
855
|
-
// }
|
856
|
-
// }
|
857
|
-
|
858
|
-
// if (val.filterType === "string" || val.filterType === "text") {
|
859
|
-
// switch (val.type) {
|
860
|
-
// case "contains":
|
861
|
-
// operator = "$regex";
|
862
|
-
// value = `${val.filter}`;
|
863
|
-
// break;
|
864
|
-
|
865
|
-
// case "notContains":
|
866
|
-
// operator = "$regex";
|
867
|
-
// value = `^((?!${val.filter}).)*$`;
|
868
|
-
// break;
|
869
|
-
|
870
|
-
// case "equals":
|
871
|
-
// operator = "$eq";
|
872
|
-
// value = `${val.filter}`;
|
873
|
-
// break;
|
874
|
-
|
875
|
-
// case "notEqual":
|
876
|
-
// operator = "$ne";
|
877
|
-
// value = `${val.filter}`;
|
878
|
-
// break;
|
879
|
-
|
880
|
-
// case "startsWith":
|
881
|
-
// operator = "$regex";
|
882
|
-
// value = `^${val.filter}`;
|
883
|
-
// break;
|
884
|
-
|
885
|
-
// case "endsWith":
|
886
|
-
// operator = "$regex";
|
887
|
-
// value = `${val.filter}$`;
|
888
|
-
// break;
|
889
|
-
|
890
|
-
// case "blank":
|
891
|
-
// operator = "$eq";
|
892
|
-
// value = "";
|
893
|
-
// break;
|
894
|
-
|
895
|
-
// case "notBlank":
|
896
|
-
// operator = "$ne";
|
897
|
-
// value = "";
|
898
|
-
// break;
|
899
|
-
|
900
|
-
// default:
|
901
|
-
// value = "^" + val.filter;
|
902
|
-
// }
|
903
|
-
// }
|
904
|
-
|
905
|
-
// if (val.filterType === "number") {
|
906
|
-
// switch (val.type) {
|
907
|
-
// case "equals":
|
908
|
-
// operator = "$eq";
|
909
|
-
// value = val.filter;
|
910
|
-
// break;
|
911
|
-
|
912
|
-
// case "notEqual":
|
913
|
-
// operator = "$ne";
|
914
|
-
// value = val.filter;
|
915
|
-
// break;
|
916
|
-
|
917
|
-
// case "lessThanOrEqual":
|
918
|
-
// operator = "$lte";
|
919
|
-
// value = val.filter;
|
920
|
-
// break;
|
921
|
-
|
922
|
-
// case "greaterThanOrEqual":
|
923
|
-
// operator = "$gte";
|
924
|
-
// value = val.filter;
|
925
|
-
// break;
|
926
|
-
|
927
|
-
// case "lessThan":
|
928
|
-
// operator = "$lt";
|
929
|
-
// value = val.filter;
|
930
|
-
// break;
|
931
|
-
|
932
|
-
// case "greaterThan":
|
933
|
-
// operator = "$gt";
|
934
|
-
// value = val.filter;
|
935
|
-
// break;
|
936
|
-
|
937
|
-
// case "blank":
|
938
|
-
// operator = "$eq";
|
939
|
-
// value = 0;
|
940
|
-
// break;
|
941
|
-
|
942
|
-
// case "notBlank":
|
943
|
-
// operator = "$ne";
|
944
|
-
// value = 0;
|
945
|
-
// break;
|
946
|
-
|
947
|
-
// case "inRange":
|
948
|
-
// operator = "$gte";
|
949
|
-
// value = val.filter;
|
950
|
-
// operator_to = "$lte";
|
951
|
-
// value_to = val.filterTo;
|
952
|
-
// break;
|
953
|
-
|
954
|
-
// default:
|
955
|
-
// operator = "$eq";
|
956
|
-
// value = val.filter;
|
957
|
-
// }
|
958
|
-
// }
|
959
|
-
// if (!opt.selector[field_name]) {
|
960
|
-
// opt.selector[field_name] = {};
|
961
|
-
// }
|
962
|
-
// if (!opt.selector[field_name][condition]) {
|
963
|
-
// opt.selector[field_name][condition] = [];
|
964
|
-
// }
|
965
|
-
// opt.selector[field_name][condition].push({
|
966
|
-
// [operator]: value,
|
967
|
-
// });
|
968
|
-
|
969
|
-
// if (operator_to) {
|
970
|
-
// opt.selector[field_name][condition].push({
|
971
|
-
// [operator_to]: value_to,
|
972
|
-
// });
|
973
|
-
// }
|
974
|
-
// };
|
975
|
-
|
976
|
-
// if (!val.condition1) {
|
977
|
-
// make_selector(val);
|
978
|
-
// } else {
|
979
|
-
// condition = "$" + val.operator.toLowerCase();
|
980
|
-
// make_selector(val.condition1);
|
981
|
-
// make_selector(val.condition2);
|
982
|
-
// }
|
983
|
-
// }
|
984
|
-
// }
|
985
|
-
|
986
|
-
// if (e.total_fields_info) {
|
987
|
-
// fields = [];
|
988
|
-
// for (const [key, val] of Object.entries(
|
989
|
-
// JSON.parse(e.total_fields_info)
|
990
|
-
// )) {
|
991
|
-
// var field_name = val.field_id;
|
992
|
-
|
993
|
-
// fields.push(field_name);
|
994
|
-
// }
|
995
|
-
// opt.fields = fields;
|
996
|
-
// }
|
997
|
-
// // fix names
|
998
|
-
|
999
|
-
// for (const [key, val] of Object.entries(opt.fields)) {
|
1000
|
-
// opt.fields[key] = "udfData.data." + val;
|
1001
|
-
// }
|
1002
|
-
// if (!e?.sort_fields?.length) {
|
1003
|
-
// // added 2021 09 10
|
1004
|
-
// if (opt.sort) {
|
1005
|
-
// for (const [key, val] of Object.entries(opt.sort)) {
|
1006
|
-
// opt.sort[key] = {
|
1007
|
-
// ["udfData.data." + val]: e.sortOrder === "des" ? "desc" : "asc",
|
1008
|
-
// };
|
1009
|
-
// }
|
1010
|
-
// }
|
1011
|
-
// }
|
1012
|
-
|
1013
|
-
// var selector_new = {};
|
1014
|
-
|
1015
|
-
// for (const [key, val] of Object.entries(opt.selector)) {
|
1016
|
-
// selector_new["udfData.data." + key] = val;
|
1017
|
-
// }
|
1018
|
-
|
1019
|
-
// if (e.viewDbQuery) {
|
1020
|
-
// for (const [key, val] of Object.entries(table_obj.tableFields)) {
|
1021
|
-
// if (e.viewDbQuery.includes(val.id)) {
|
1022
|
-
// const replacer = new RegExp(val.id, "g");
|
1023
|
-
// e.viewDbQuery = e.viewDbQuery.replace(
|
1024
|
-
// replacer,
|
1025
|
-
// "udfData.data." + val.data.field_id
|
1026
|
-
// );
|
1027
|
-
// }
|
1028
|
-
// }
|
1029
|
-
|
1030
|
-
// let viewDbQuery = JSON.parse(e.viewDbQuery.replace(/\\/g, ""));
|
1031
|
-
|
1032
|
-
// for (const [key, val] of Object.entries(viewDbQuery)) {
|
1033
|
-
// selector_new[key] = val;
|
1034
|
-
// }
|
1035
|
-
// }
|
1036
|
-
|
1037
|
-
// opt.selector = selector_new;
|
1038
|
-
// opt.selector["udfData.udffileid"] = e.table_id;
|
1039
|
-
// opt.selector.stat = e.archived ? 4 : 3;
|
1040
|
-
|
1041
|
-
// opt.fields.push("_id");
|
1042
|
-
// opt.fields.push("_rev");
|
1043
|
-
|
1044
|
-
// if (e.selector) {
|
1045
|
-
// opt.selector = { ...e.selector, ...opt.selector };
|
1046
|
-
// }
|
1047
|
-
|
1048
725
|
// xuda
|
1049
726
|
|
1050
727
|
try {
|
@@ -1099,7 +776,16 @@ const query_db = async function (e, db, table_obj) {
|
|
1099
776
|
|
1100
777
|
try {
|
1101
778
|
const result = await db.createIndex(mango_index_obj);
|
1102
|
-
|
779
|
+
const monitor_indexing = function () {
|
780
|
+
return new Promise((resolve, reject) => {
|
781
|
+
db.on("indexing", function (event) {
|
782
|
+
// called when indexes are updated
|
783
|
+
// console.log("indexes event", event);
|
784
|
+
resolve();
|
785
|
+
});
|
786
|
+
});
|
787
|
+
};
|
788
|
+
await monitor_indexing();
|
1103
789
|
const doc = await db.find(opt);
|
1104
790
|
return await done(doc);
|
1105
791
|
} catch (err) {
|