Fix isZodRawShape return false on empty object and add test

This commit is contained in:
yuna0x0 2025-05-06 01:49:33 +08:00
commit 52dc7f1160
No known key found for this signature in database
GPG key ID: 6C8EAF0D90FD8E80

View file

@ -663,8 +663,11 @@ export class McpServer {
// Helper to check if an object is a Zod schema (ZodRawShape)
const isZodRawShape = (obj: unknown): obj is ZodRawShape => {
if (typeof obj !== "object" || obj === null) return false;
// Check that at least one property is a ZodType instance
return Object.values(obj as object).some(v => v instanceof ZodType);
const isEmptyObject = z.object({}).strict().safeParse(obj).success;
// Check if object is empty or at least one property is a ZodType instance
return isEmptyObject || Object.values(obj as object).some(v => v instanceof ZodType);
};
let description: string | undefined;