@xuda.io/xuda-dbs-plugin-xuda 1.0.134 → 1.0.136

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.
Files changed (3) hide show
  1. package/package.json +1 -1
  2. package/server.js +10 -1
  3. package/studio.mjs +17 -327
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xuda.io/xuda-dbs-plugin-xuda",
3
- "version": "1.0.134",
3
+ "version": "1.0.136",
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/server.js CHANGED
@@ -744,7 +744,16 @@ const query_db = async function (e, db, app_id_reference, table_obj) {
744
744
 
745
745
  mango_index_obj = {
746
746
  index: {
747
- fields: [...Object.keys(opt.selector), ...opt.sort],
747
+ fields: Object.keys(
748
+ _.reduce(
749
+ opt.sort,
750
+ (ret, val) => {
751
+ ret[Object.keys(val)[0]] = val;
752
+ return ret;
753
+ },
754
+ opt.selector
755
+ )
756
+ ),
748
757
  },
749
758
  name: index_name,
750
759
  ddoc: `mango_index_table_${e.table_id}`,
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 {
@@ -1082,7 +759,16 @@ const query_db = async function (e, db, table_obj) {
1082
759
 
1083
760
  mango_index_obj = {
1084
761
  index: {
1085
- fields: [...Object.keys(opt.selector), ...opt.sort],
762
+ fields: Object.keys(
763
+ _.reduce(
764
+ opt.sort,
765
+ (ret, val) => {
766
+ ret[Object.keys(val)[0]] = val;
767
+ return ret;
768
+ },
769
+ opt.selector
770
+ )
771
+ ),
1086
772
  },
1087
773
  name: index_name,
1088
774
  ddoc: `mango_index_table_${e.table_id}`,
@@ -1090,6 +776,10 @@ const query_db = async function (e, db, table_obj) {
1090
776
 
1091
777
  try {
1092
778
  const result = await db.createIndex(mango_index_obj);
779
+ db.on("indexing", function (event) {
780
+ // called when indexes are updated
781
+ console.log("indexes event", event);
782
+ });
1093
783
 
1094
784
  const doc = await db.find(opt);
1095
785
  return await done(doc);
@@ -1110,11 +800,11 @@ const query_db = async function (e, db, table_obj) {
1110
800
  var skip = 0;
1111
801
 
1112
802
  if (e.limit) {
1113
- limit = e.limitP;
803
+ limit = e.limit;
1114
804
  }
1115
805
 
1116
- if (e.skipP) {
1117
- skip = e.skipP;
806
+ if (e.skip) {
807
+ skip = e.skip;
1118
808
  }
1119
809
 
1120
810
  var view_opt = undefined;