35 lines
829 B
TypeScript
35 lines
829 B
TypeScript
const getEnvValue = (name: string): string | undefined => {
|
|
const value = process.env[name];
|
|
if (!value) {
|
|
return undefined;
|
|
}
|
|
|
|
const trimmed = value.trim();
|
|
return trimmed.length > 0 ? trimmed : undefined;
|
|
};
|
|
|
|
export const getFirstDefinedEnv = (...names: string[]): string | undefined => {
|
|
for (const name of names) {
|
|
const value = getEnvValue(name);
|
|
if (value) {
|
|
return value;
|
|
}
|
|
}
|
|
|
|
return undefined;
|
|
};
|
|
|
|
export const getRequiredEnv = (name: string): string => {
|
|
const value = getEnvValue(name);
|
|
|
|
if (!value) {
|
|
throw new Error(`${name} is required. Add it to your .env file.`);
|
|
}
|
|
|
|
return value;
|
|
};
|
|
|
|
export const getBetterAuthBaseUrl = (): string => {
|
|
return getFirstDefinedEnv('BETTER_AUTH_BASE_URL', 'BETTER_AUTH_URL') ?? `http://localhost:${process.env.PORT ?? '3000'}`;
|
|
};
|