From 284945347380431f814496ec36fa49131bd7bb94 Mon Sep 17 00:00:00 2001 From: Rami Abdou <38056800+ramiAbdou@users.noreply.github.com> Date: Wed, 25 Sep 2024 19:14:58 -0700 Subject: [PATCH] =?UTF-8?q?fix:=20optional=20phone=20number=20has=20requir?= =?UTF-8?q?ed=20behavior=20=E2=9D=97=EF=B8=8F=20(#526)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/types/src/domain/student.ts | 4 ++-- packages/types/src/shared/zod.ts | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/types/src/domain/student.ts b/packages/types/src/domain/student.ts index 52fe4dd4..a0cdf467 100644 --- a/packages/types/src/domain/student.ts +++ b/packages/types/src/domain/student.ts @@ -12,7 +12,7 @@ import { } from './types'; import { normalizeUri } from '../../../utils/src/index'; import { type ExtractValue } from '../shared/types'; -import { NullishString } from '../shared/zod'; +import { EmptyStringToNull, NullishString } from '../shared/zod'; // Enums @@ -172,7 +172,7 @@ export const Student = Entity.merge(StudentSocialLinks) .string() .trim() .regex(/^\d{10}$/, 'Must be a 10-digit number.') - .optional(), + .or(EmptyStringToNull), /** * The preferred name that a member would like to go by. This will typically diff --git a/packages/types/src/shared/zod.ts b/packages/types/src/shared/zod.ts index bdb21a10..5b254f67 100644 --- a/packages/types/src/shared/zod.ts +++ b/packages/types/src/shared/zod.ts @@ -4,6 +4,8 @@ export const BooleanInput = z.preprocess((value) => { return typeof value === 'boolean' ? value : value === '1'; }, z.boolean()); +export const EmptyStringToNull = z.literal('').transform(() => null); + export const ISO8601Date = z.coerce.date().transform((value) => { return value.toISOString().split('T')[0]; });