filter bug fix
This commit is contained in:
@@ -10,6 +10,11 @@ type ParsedQuery = Array<
|
|||||||
function convertValue(value: any) {
|
function convertValue(value: any) {
|
||||||
if (mongoose.Types.ObjectId.isValid(value)) {
|
if (mongoose.Types.ObjectId.isValid(value)) {
|
||||||
return mongoose.Types.ObjectId.createFromHexString(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))) {
|
} else if (!isNaN(Date.parse(value))) {
|
||||||
return new Date(value);
|
return new Date(value);
|
||||||
} else {
|
} else {
|
||||||
@@ -58,7 +63,6 @@ export function parse(query: string, validFields: Array<string>): ParsedQuery {
|
|||||||
if (i == query.length - 1) token += char;
|
if (i == query.length - 1) token += char;
|
||||||
|
|
||||||
value = token;
|
value = token;
|
||||||
if (validFields.includes(field))
|
|
||||||
result.push({ [field]: { [op]: convertValue(value) } });
|
result.push({ [field]: { [op]: convertValue(value) } });
|
||||||
|
|
||||||
token = "";
|
token = "";
|
||||||
@@ -82,7 +86,6 @@ export function parse(query: string, validFields: Array<string>): ParsedQuery {
|
|||||||
|
|
||||||
if (char === "]") {
|
if (char === "]") {
|
||||||
valueArr.push(token);
|
valueArr.push(token);
|
||||||
if (validFields.includes(field))
|
|
||||||
result.push({
|
result.push({
|
||||||
[field]: { [op === "$eq" ? "$in" : "$nin"]: valueArr },
|
[field]: { [op === "$eq" ? "$in" : "$nin"]: valueArr },
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user