@budibase/shared-core 2.14.4 → 2.14.6

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/dist/index.js CHANGED
@@ -5006,74 +5006,75 @@ var buildLuceneQuery = (filter) => {
5006
5006
  oneOf: {},
5007
5007
  containsAny: {}
5008
5008
  };
5009
- if (Array.isArray(filter)) {
5010
- filter.forEach((expression) => {
5011
- let { operator, field, type, value, externalType, onEmptyFilter } = expression;
5012
- const isHbs = typeof value === "string" && (value.match(HBS_REGEX) || []).length > 0;
5013
- if (operator === "allOr") {
5014
- query.allOr = true;
5009
+ if (!Array.isArray(filter)) {
5010
+ return query;
5011
+ }
5012
+ filter.forEach((expression) => {
5013
+ let { operator, field, type, value, externalType, onEmptyFilter } = expression;
5014
+ const isHbs = typeof value === "string" && (value.match(HBS_REGEX) || []).length > 0;
5015
+ if (operator === "allOr") {
5016
+ query.allOr = true;
5017
+ return;
5018
+ }
5019
+ if (onEmptyFilter) {
5020
+ query.onEmptyFilter = onEmptyFilter;
5021
+ return;
5022
+ }
5023
+ if (type === "datetime" && !isHbs && operator !== "empty" && operator !== "notEmpty") {
5024
+ if (!value) {
5015
5025
  return;
5016
5026
  }
5017
- if (onEmptyFilter) {
5018
- query.onEmptyFilter = onEmptyFilter;
5027
+ try {
5028
+ value = new Date(value).toISOString();
5029
+ } catch (error) {
5019
5030
  return;
5020
5031
  }
5021
- if (type === "datetime" && !isHbs && operator !== "empty" && operator !== "notEmpty") {
5022
- if (!value) {
5023
- return;
5024
- }
5025
- try {
5026
- value = new Date(value).toISOString();
5027
- } catch (error) {
5028
- return;
5029
- }
5030
- }
5031
- if (type === "number" && typeof value === "string") {
5032
- if (operator === "oneOf") {
5033
- value = value.split(",").map((item) => parseFloat(item));
5034
- } else if (!isHbs) {
5035
- value = parseFloat(value);
5036
- }
5032
+ }
5033
+ if (type === "number" && typeof value === "string" && !isHbs) {
5034
+ if (operator === "oneOf") {
5035
+ value = value.split(",").map((item) => parseFloat(item));
5036
+ } else {
5037
+ value = parseFloat(value);
5037
5038
  }
5038
- if (type === "boolean") {
5039
- value = `${value}`?.toLowerCase() === "true";
5039
+ }
5040
+ if (type === "boolean") {
5041
+ value = `${value}`?.toLowerCase() === "true";
5042
+ }
5043
+ if (["contains", "notContains", "containsAny"].includes(operator) && type === "array" && typeof value === "string") {
5044
+ value = value.split(",");
5045
+ }
5046
+ if (operator.startsWith("range") && query.range) {
5047
+ const minint = SqlNumberTypeRangeMap[externalType]?.min || Number.MIN_SAFE_INTEGER;
5048
+ const maxint = SqlNumberTypeRangeMap[externalType]?.max || Number.MAX_SAFE_INTEGER;
5049
+ if (!query.range[field]) {
5050
+ query.range[field] = {
5051
+ low: type === "number" ? minint : "0000-00-00T00:00:00.000Z",
5052
+ high: type === "number" ? maxint : "9999-00-00T00:00:00.000Z"
5053
+ };
5040
5054
  }
5041
- if (["contains", "notContains", "containsAny"].includes(operator) && type === "array" && typeof value === "string") {
5042
- value = value.split(",");
5055
+ if (operator === "rangeLow" && value != null && value !== "") {
5056
+ query.range[field].low = value;
5057
+ } else if (operator === "rangeHigh" && value != null && value !== "") {
5058
+ query.range[field].high = value;
5043
5059
  }
5044
- if (operator.startsWith("range") && query.range) {
5045
- const minint = SqlNumberTypeRangeMap[externalType]?.min || Number.MIN_SAFE_INTEGER;
5046
- const maxint = SqlNumberTypeRangeMap[externalType]?.max || Number.MAX_SAFE_INTEGER;
5047
- if (!query.range[field]) {
5048
- query.range[field] = {
5049
- low: type === "number" ? minint : "0000-00-00T00:00:00.000Z",
5050
- high: type === "number" ? maxint : "9999-00-00T00:00:00.000Z"
5051
- };
5052
- }
5053
- if (operator === "rangeLow" && value != null && value !== "") {
5054
- query.range[field].low = value;
5055
- } else if (operator === "rangeHigh" && value != null && value !== "") {
5056
- query.range[field].high = value;
5057
- }
5058
- } else if (query[operator] && operator !== "onEmptyFilter") {
5059
- if (type === "boolean") {
5060
- if (operator === "equal" && value === false) {
5061
- query.notEqual = query.notEqual || {};
5062
- query.notEqual[field] = true;
5063
- } else if (operator === "notEqual" && value === false) {
5064
- query.equal = query.equal || {};
5065
- query.equal[field] = true;
5066
- } else {
5067
- query[operator] = query[operator] || {};
5068
- query[operator][field] = value;
5069
- }
5060
+ } else if (query[operator] && operator !== "onEmptyFilter") {
5061
+ if (type === "boolean") {
5062
+ if (operator === "equal" && value === false) {
5063
+ query.notEqual = query.notEqual || {};
5064
+ query.notEqual[field] = true;
5065
+ } else if (operator === "notEqual" && value === false) {
5066
+ query.equal = query.equal || {};
5067
+ query.equal[field] = true;
5070
5068
  } else {
5071
5069
  query[operator] = query[operator] || {};
5072
5070
  query[operator][field] = value;
5073
5071
  }
5072
+ } else {
5073
+ query[operator] = query[operator] || {};
5074
+ query[operator][field] = value;
5074
5075
  }
5075
- });
5076
- }
5076
+ }
5077
+ });
5077
5078
  return query;
5078
5079
  };
5079
5080
  var runLuceneQuery = (docs, query) => {