fix: Also apply simple type to operator map (#8278)

This commit is contained in:
Stevche Radevski
2024-07-25 16:54:42 +02:00
committed by GitHub
parent 6d0650818a
commit 5d9ea4f718
+8 -9
View File
@@ -77,19 +77,17 @@ export const createOperatorMap = (
type = z.string() type = z.string()
} }
let unionType: any = z.union([type, z.array(type)]).optional()
let arrayType: any = z.array(type).optional()
let simpleType: any = type.optional() let simpleType: any = type.optional()
if (valueParser) { if (valueParser) {
unionType = z
.preprocess(valueParser, z.union([type, z.array(type)]))
.optional()
arrayType = z.preprocess(valueParser, z.array(type)).optional()
simpleType = z.preprocess(valueParser, type).optional() simpleType = z.preprocess(valueParser, type).optional()
} }
return z.object({ const arrayType: any = z.array(type).optional()
const unionType: any = z.union([simpleType, arrayType]).optional()
return z.union([
unionType,
z.object({
$eq: unionType, $eq: unionType,
$ne: unionType, $ne: unionType,
$in: arrayType, $in: arrayType,
@@ -102,5 +100,6 @@ export const createOperatorMap = (
$gte: simpleType, $gte: simpleType,
$lt: simpleType, $lt: simpleType,
$lte: simpleType, $lte: simpleType,
}) }),
])
} }