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
+20 -21
View File
@@ -77,30 +77,29 @@ 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()
$eq: unionType, const unionType: any = z.union([simpleType, arrayType]).optional()
$ne: unionType,
$in: arrayType, return z.union([
$nin: arrayType, unionType,
$like: simpleType, z.object({
$ilike: simpleType, $eq: unionType,
$re: simpleType, $ne: unionType,
$contains: simpleType, $in: arrayType,
$gt: simpleType, $nin: arrayType,
$gte: simpleType, $like: simpleType,
$lt: simpleType, $ilike: simpleType,
$lte: simpleType, $re: simpleType,
}) $contains: simpleType,
$gt: simpleType,
$gte: simpleType,
$lt: simpleType,
$lte: simpleType,
}),
])
} }