feat: runtime env

Support runtime environment variables using server components.

This will mean docker images can change env vars for runtime as required.
This commit is contained in:
Mythie
2023-11-12 13:10:30 +11:00
parent aec0d2ae97
commit 1cd60e1abb
29 changed files with 254 additions and 70 deletions

View File

@@ -1,3 +1,5 @@
import { getRuntimeEnv } from '../universal/runtime-env/get-runtime-env';
export const IS_APP_MARKETING = process.env.NEXT_PUBLIC_PROJECT === 'marketing';
export const IS_APP_WEB = process.env.NEXT_PUBLIC_PROJECT === 'web';
@@ -6,3 +8,21 @@ export const APP_FOLDER = IS_APP_MARKETING ? 'marketing' : 'web';
export const APP_BASE_URL = IS_APP_WEB
? process.env.NEXT_PUBLIC_WEBAPP_URL
: process.env.NEXT_PUBLIC_MARKETING_URL;
export const appBaseUrl = () => {
const { NEXT_PUBLIC_WEBAPP_URL, NEXT_PUBLIC_MARKETING_URL } = getRuntimeEnv();
if (IS_APP_WEB) {
return NEXT_PUBLIC_WEBAPP_URL;
}
if (IS_APP_MARKETING) {
return NEXT_PUBLIC_MARKETING_URL;
}
if (typeof window !== 'undefined') {
return window.location.origin;
}
return NEXT_PUBLIC_WEBAPP_URL ?? 'http://localhost:3000';
};