filter bug fix

This commit is contained in:
2025-02-08 15:41:57 +05:30
parent d043b5aed7
commit 0576329695

View File

@@ -10,6 +10,11 @@ type ParsedQuery = Array<
function convertValue(value: any) {
if (mongoose.Types.ObjectId.isValid(value)) {
return mongoose.Types.ObjectId.createFromHexString(value);
} else if (
!isNaN(parseInt(value)) &&
parseInt(value).toString().length == value.toString().length
) {
return parseInt(value);
} else if (!isNaN(Date.parse(value))) {
return new Date(value);
} else {
@@ -58,8 +63,7 @@ export function parse(query: string, validFields: Array<string>): ParsedQuery {
if (i == query.length - 1) token += char;
value = token;
if (validFields.includes(field))
result.push({ [field]: { [op]: convertValue(value) } });
result.push({ [field]: { [op]: convertValue(value) } });
token = "";
field = "";
@@ -82,10 +86,9 @@ export function parse(query: string, validFields: Array<string>): ParsedQuery {
if (char === "]") {
valueArr.push(token);
if (validFields.includes(field))
result.push({
[field]: { [op === "$eq" ? "$in" : "$nin"]: valueArr },
});
result.push({
[field]: { [op === "$eq" ? "$in" : "$nin"]: valueArr },
});
token = "";
field = "";