Files
acs/server/config/env.ts
2026-07-14 15:58:56 +09:00

32 lines
1.1 KiB
TypeScript

import { existsSync } from 'node:fs';
import path from 'node:path';
import dotenv from 'dotenv';
const projectEnvPath = path.resolve(process.cwd(), '.project-env');
const dotEnvPath = path.resolve(process.cwd(), '.env');
if (existsSync(projectEnvPath)) {
dotenv.config({ path: projectEnvPath });
} else if (existsSync(dotEnvPath)) {
dotenv.config({ path: dotEnvPath });
}
export const env = {
nodeEnv: process.env.NODE_ENV ?? 'development',
port: Number(process.env.PORT ?? 3000),
databaseUrl: process.env.DATABASE_URL,
sessionSecret: process.env.SESSION_SECRET ?? 'dev-only-change-me',
publicBaseUrl: process.env.ACS_PUBLIC_BASE_URL ?? 'http://localhost:3000',
smsProvider: process.env.ACS_SMS_PROVIDER ?? 'dev',
cookieSecure:
(process.env.ACS_COOKIE_SECURE ?? '').toLowerCase() === 'true' ||
(process.env.ACS_PUBLIC_BASE_URL ?? '').startsWith('https://'),
};
export function requireDatabaseUrl(): string {
if (!env.databaseUrl) {
throw new Error('DATABASE_URL is required. In AI DEV it should be supplied by .project-env.');
}
return env.databaseUrl;
}