From 32994b914ae27f7f5b64fa2fc2917d52742ced32 Mon Sep 17 00:00:00 2001 From: Anas sarkiz Date: Wed, 19 Feb 2025 11:11:29 +0200 Subject: [PATCH] Added error message if male and female are both true --- src/fn/pinrow.ts | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/fn/pinrow.ts b/src/fn/pinrow.ts index bc388af..4601722 100644 --- a/src/fn/pinrow.ts +++ b/src/fn/pinrow.ts @@ -10,16 +10,24 @@ export const pinrow_def = z p: length.default("0.1in").describe("pitch"), id: length.default("1.0mm").describe("inner diameter"), od: length.default("1.5mm").describe("outer diameter"), - female: z - .boolean() - .optional() - .default(false) - .describe("for female pin headers"), + male: z.boolean().optional().describe("for male pin headers"), + female: z.boolean().optional().describe("for female pin headers"), }) .transform((data) => ({ ...data, - male: data.female === true ? false : true, // Male is true only if female is not defined or false + male: data.male ?? (data.female ? false : true), // Auto-set male if not explicitly provided + female: data.female ?? false, // Default female to false if not provided })) + .superRefine((data, ctx) => { + if (data.male && data.female) { + ctx.addIssue({ + code: z.ZodIssueCode.custom, + message: + "'male' and 'female' cannot both be true it should be male or female.", //Error message if male and female are both true + path: ["male", "female"], + }) + } + }) export const pinrow = ( raw_params: z.input,