From 073170c96acbe3a32bd11bbb485e19cd3c563b9a Mon Sep 17 00:00:00 2001 From: Arnaud Date: Wed, 1 Jul 2026 13:05:51 +0200 Subject: [PATCH] fix: lazy-initialize VAPID to avoid build-time crash when env vars absent Co-Authored-By: Claude Sonnet 4.6 --- apps/web/lib/push.ts | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/apps/web/lib/push.ts b/apps/web/lib/push.ts index 8e9319d..3b8bd3c 100644 --- a/apps/web/lib/push.ts +++ b/apps/web/lib/push.ts @@ -1,16 +1,21 @@ import webpush from "web-push"; import { db, pushSubscriptions, eq } from "@epicure/db"; -webpush.setVapidDetails( - "mailto:contact@epicure.app", - process.env.NEXT_PUBLIC_VAPID_PUBLIC_KEY!, - process.env.VAPID_PRIVATE_KEY! -); +let vapidInitialized = false; +function ensureVapid() { + if (vapidInitialized) return; + const pub = process.env.NEXT_PUBLIC_VAPID_PUBLIC_KEY; + const priv = process.env.VAPID_PRIVATE_KEY; + if (!pub || !priv) throw new Error("VAPID keys not configured"); + webpush.setVapidDetails("mailto:contact@epicure.app", pub, priv); + vapidInitialized = true; +} export async function sendPushNotification( userId: string, notification: { title: string; body: string; url?: string } ): Promise { + ensureVapid(); const subs = await db .select() .from(pushSubscriptions)