From e9078568afe318e99f330d1fc710e93553f6ad8a Mon Sep 17 00:00:00 2001 From: mbaharip <62494292+mbahArip@users.noreply.github.com> Date: Wed, 29 Jan 2025 16:04:28 +0700 Subject: [PATCH 1/2] fix: Build error because `BASE_URL` doesn't return to fallback --- src/constant.ts | 39 +++++++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/src/constant.ts b/src/constant.ts index 21aa513..f81a3b8 100644 --- a/src/constant.ts +++ b/src/constant.ts @@ -16,18 +16,33 @@ export const USE_CACHE = false; * * On development, it will use `http://localhost:3000` */ -export const BASE_URL = - process.env.NODE_ENV === "production" - ? process.env.NEXT_PUBLIC_DOMAIN ?? - process.env.VERCEL_PROJECT_PRODUCTION_URL ?? - process.env.VERCEL_URL ?? - process.env.URL ?? // Netlify - process.env.DEPLOY_URL ?? // Netlify - process.env.CF_PAGES_URL ?? // Cloudflare Pages - process.env.RAILWAY_PUBLIC_DOMAIN ?? // Railway - process.env.RENDER_EXTERNAL_HOSTNAME ?? // Render - "you-need-to-set-the-domain.com" // Fallback to prevent build error - : "http://localhost:3000"; +export const BASE_URL = (() => { + if (IS_DEV) return "http://localhost:3000"; + + const deploymentEnvironment = [ + process.env.NEXT_PUBLIC_DOMAIN, + // Vercel + process.env.NEXT_PUBLIC_VERCEL_PROJECT_PRODUCTION_URL, + process.env.NEXT_PUBLIC_VERCEL_URL, + process.env.VERCEL_PROJECT_PRODUCTION_URL, + process.env.VERCEL_URL, + // Netlify + process.env.URL, + process.env.DEPLOY_URL, + // Cloudflare + process.env.CF_PAGES_URL, + // Railway + process.env.RAILWAY_PUBLIC_DOMAIN, + // Render + process.env.RENDER_EXTERNAL_HOSTNAME, + + // ...Add more here + ].filter(Boolean); + if (deploymentEnvironment.length > 0) return deploymentEnvironment[0]!; + + // Fallback + return "you-needs-to-set-the-domain.com"; +})(); /** * Cookies name for the app From 3755eaaebe67524817e6534f65a422ce7791faa7 Mon Sep 17 00:00:00 2001 From: mbaharip <62494292+mbahArip@users.noreply.github.com> Date: Wed, 29 Jan 2025 16:09:18 +0700 Subject: [PATCH 2/2] fix: favor `VERCEL_URL` instead of `VERCEL_PROJECT_PRODUCTION_URL` --- src/constant.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/constant.ts b/src/constant.ts index f81a3b8..1e8a1b9 100644 --- a/src/constant.ts +++ b/src/constant.ts @@ -22,10 +22,10 @@ export const BASE_URL = (() => { const deploymentEnvironment = [ process.env.NEXT_PUBLIC_DOMAIN, // Vercel - process.env.NEXT_PUBLIC_VERCEL_PROJECT_PRODUCTION_URL, process.env.NEXT_PUBLIC_VERCEL_URL, - process.env.VERCEL_PROJECT_PRODUCTION_URL, process.env.VERCEL_URL, + process.env.NEXT_PUBLIC_VERCEL_PROJECT_PRODUCTION_URL, + process.env.VERCEL_PROJECT_PRODUCTION_URL, // Netlify process.env.URL, process.env.DEPLOY_URL,