react-querybuilder
Advanced tools
Comparing version 7.4.3 to 7.4.4
@@ -238,3 +238,2 @@ "use strict"; | ||
// src/utils/formatQuery/defaultRuleProcessorMongoDB.ts | ||
var escapeDoubleQuotes2 = (v) => typeof v !== "string" ? v : v.replaceAll("\\", "\\\\").replaceAll(`"`, `\\"`); | ||
var defaultRuleProcessorMongoDB = ({ field, operator, value, valueSource }, { parseNumbers } = {}) => { | ||
@@ -244,3 +243,3 @@ const valueIsField = valueSource === "field"; | ||
if (operator === "=" && !valueIsField) { | ||
return `{"${field}":${useBareValue ? trimIfString(value) : `"${escapeDoubleQuotes2(value)}"`}}`; | ||
return `{"${field}":${useBareValue ? trimIfString(value) : JSON.stringify(value)}}`; | ||
} | ||
@@ -255,16 +254,16 @@ switch (operator) { | ||
const mongoOperator = mongoOperators[operator]; | ||
return valueIsField ? `{"$expr":{"${mongoOperator}":["$${field}","$${value}"]}}` : `{"${field}":{"${mongoOperator}":${useBareValue ? trimIfString(value) : `"${escapeDoubleQuotes2(value)}"`}}}`; | ||
return valueIsField ? `{"$expr":{"${mongoOperator}":["$${field}","$${value}"]}}` : `{"${field}":{"${mongoOperator}":${useBareValue ? trimIfString(value) : JSON.stringify(value)}}}`; | ||
} | ||
case "contains": | ||
return valueIsField ? `{"$where":"this.${field}.includes(this.${value})"}` : `{"${field}":{"$regex":"${escapeDoubleQuotes2(value)}"}}`; | ||
return valueIsField ? `{"$where":"this.${field}.includes(this.${value})"}` : `{"${field}":{"$regex":${JSON.stringify(value)}}}`; | ||
case "beginsWith": | ||
return valueIsField ? `{"$where":"this.${field}.startsWith(this.${value})"}` : `{"${field}":{"$regex":"^${escapeDoubleQuotes2(value)}"}}`; | ||
return valueIsField ? `{"$where":"this.${field}.startsWith(this.${value})"}` : `{"${field}":{"$regex":${JSON.stringify(`^${value}`)}}}`; | ||
case "endsWith": | ||
return valueIsField ? `{"$where":"this.${field}.endsWith(this.${value})"}` : `{"${field}":{"$regex":"${escapeDoubleQuotes2(value)}$"}}`; | ||
return valueIsField ? `{"$where":"this.${field}.endsWith(this.${value})"}` : `{"${field}":{"$regex":${JSON.stringify(`${value}$`)}}}`; | ||
case "doesNotContain": | ||
return valueIsField ? `{"$where":"!this.${field}.includes(this.${value})"}` : `{"${field}":{"$not":{"$regex":"${escapeDoubleQuotes2(value)}"}}}`; | ||
return valueIsField ? `{"$where":"!this.${field}.includes(this.${value})"}` : `{"${field}":{"$not":{"$regex":${JSON.stringify(value)}}}}`; | ||
case "doesNotBeginWith": | ||
return valueIsField ? `{"$where":"!this.${field}.startsWith(this.${value})"}` : `{"${field}":{"$not":{"$regex":"^${escapeDoubleQuotes2(value)}"}}}`; | ||
return valueIsField ? `{"$where":"!this.${field}.startsWith(this.${value})"}` : `{"${field}":{"$not":{"$regex":${JSON.stringify(`^${value}`)}}}}`; | ||
case "doesNotEndWith": | ||
return valueIsField ? `{"$where":"!this.${field}.endsWith(this.${value})"}` : `{"${field}":{"$not":{"$regex":"${escapeDoubleQuotes2(value)}$"}}}`; | ||
return valueIsField ? `{"$where":"!this.${field}.endsWith(this.${value})"}` : `{"${field}":{"$not":{"$regex":${JSON.stringify(`${value}$`)}}}}`; | ||
case "null": | ||
@@ -278,3 +277,3 @@ return `{"${field}":null}`; | ||
return valueIsField ? `{"$where":"${operator === "notIn" ? "!" : ""}[${valueAsArray.map((val) => `this.${val}`).join(",")}].includes(this.${field})"}` : `{"${field}":{"${mongoOperators[operator]}":[${valueAsArray.map( | ||
(val) => shouldRenderAsNumber(val, parseNumbers) ? `${trimIfString(val)}` : `"${escapeDoubleQuotes2(val)}"` | ||
(val) => shouldRenderAsNumber(val, parseNumbers) ? `${trimIfString(val)}` : JSON.stringify(val) | ||
).join(",")}]}}`; | ||
@@ -289,4 +288,4 @@ } | ||
const secondNum = shouldRenderAsNumber(second, true) ? parseNumber(second, { parseNumbers: true }) : NaN; | ||
const firstValue = valueIsField || !isNaN(firstNum) ? `${first}` : `"${escapeDoubleQuotes2(first)}"`; | ||
const secondValue = valueIsField || !isNaN(secondNum) ? `${second}` : `"${escapeDoubleQuotes2(second)}"`; | ||
const firstValue = valueIsField || !isNaN(firstNum) ? `${first}` : `${JSON.stringify(first)}`; | ||
const secondValue = valueIsField || !isNaN(secondNum) ? `${second}` : `${JSON.stringify(second)}`; | ||
if (operator === "between") { | ||
@@ -293,0 +292,0 @@ return valueIsField ? `{"$and":[{"$expr":{"$gte":["$${field}","$${firstValue}"]}},{"$expr":{"$lte":["$${field}","$${secondValue}"]}}]}` : `{"${field}":{"$gte":${firstValue},"$lte":${secondValue}}}`; |
{ | ||
"name": "react-querybuilder", | ||
"version": "7.4.3", | ||
"version": "7.4.4", | ||
"description": "The React <QueryBuilder /> component for constructing queries", | ||
@@ -144,3 +144,3 @@ "main": "./dist/cjs/index.js", | ||
}, | ||
"gitHead": "ed33167735ec219bdda77de7cf8f7d4bb840f7b2" | ||
"gitHead": "65c8ca5e2d9af309a271735d4c24538287c5e2bf" | ||
} |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
5508536
38894