@syngrisi/syngrisi
Version:
Syngrisi - Visual Testing Tool
28 lines • 914 B
JavaScript
// src/server/schemas/common/requestQueryFilterSchema.schema.ts
import { extendZodWithOpenApi } from "@asteasolutions/zod-to-openapi";
import { z } from "zod";
extendZodWithOpenApi(z);
var requestQueryFilterSchema = z.string().optional().refine((data) => {
if (!data) return false;
try {
const parsed = JSON.parse(data);
const valueSchema = z.lazy(() => z.union([
z.string(),
z.number(),
z.boolean(),
z.array(z.any()),
z.record(z.string(), z.any())
]));
const schema = z.record(z.string(), valueSchema);
schema.parse(parsed);
return true;
} catch (e) {
return false;
}
}, {
message: "Invalid JSON string or does not match the required schema"
}).openapi({ example: '{"key1": "value1", "key2": 123, "key3": true, "$and":[{"name":"CheckName"}]}' });
export {
requestQueryFilterSchema
};
//# sourceMappingURL=requestQueryFilterSchema.schema.js.map