From da3ae8de7c550a205ab13fcb0e59125461c102d8 Mon Sep 17 00:00:00 2001 From: joel Date: Wed, 18 Dec 2024 14:43:56 -0800 Subject: [PATCH] fix: cookies epic react --- apps/epic-react/src/lib/users.ts | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/apps/epic-react/src/lib/users.ts b/apps/epic-react/src/lib/users.ts index fb7f541ab..3fb316e90 100644 --- a/apps/epic-react/src/lib/users.ts +++ b/apps/epic-react/src/lib/users.ts @@ -98,7 +98,7 @@ export async function getUserAndSubscriber({ user = user ? user : await getUserByEmail(subscriber.email_address) res.setHeader( 'Set-Cookie', - serialize('ck_subscriber', JSON.stringify(subscriber), { + serialize('ck_subscriber', JSON.stringify(deepOmitNull(subscriber)), { httpOnly: true, secure: process.env.NODE_ENV === 'production', path: '/', @@ -112,3 +112,21 @@ export async function getUserAndSubscriber({ subscriber: convertToSerializeForNextResponse(subscriber), } } + +function deepOmitNull(obj: any): any { + if (Array.isArray(obj)) { + return obj.map(deepOmitNull).filter((x) => x !== null) + } + + if (obj && typeof obj === 'object') { + return Object.entries(obj).reduce((acc, [key, value]) => { + const cleaned = deepOmitNull(value) + if (cleaned !== null) { + acc[key] = cleaned + } + return acc + }, {} as Record) + } + + return obj === null ? undefined : obj +}