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

View File

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