26 lines
855 B
TypeScript
26 lines
855 B
TypeScript
const ENABLED_VALUES = new Set(['1', 'true', 'yes'])
|
|
|
|
export function ensureDatabaseUrl(env: NodeJS.ProcessEnv = process.env) {
|
|
const shouldBuildFromPostgres = ENABLED_VALUES.has(
|
|
env.DATABASE_URL_FROM_POSTGRES?.trim().toLowerCase() ?? '',
|
|
)
|
|
|
|
if (!shouldBuildFromPostgres) {
|
|
return env.DATABASE_URL
|
|
}
|
|
|
|
if (!env.POSTGRES_PASSWORD) {
|
|
throw new Error('DATABASE_URL_FROM_POSTGRES is enabled but POSTGRES_PASSWORD is not set')
|
|
}
|
|
|
|
const user = env.POSTGRES_USER ?? 'postgres'
|
|
const password = env.POSTGRES_PASSWORD
|
|
const host = env.POSTGRES_HOST ?? 'postgres'
|
|
const port = env.POSTGRES_PORT ?? '5432'
|
|
const database = env.POSTGRES_DB ?? 'rentaldrivego'
|
|
|
|
env.DATABASE_URL = `postgresql://${encodeURIComponent(user)}:${encodeURIComponent(password)}@${host}:${port}/${encodeURIComponent(database)}`
|
|
|
|
return env.DATABASE_URL
|
|
}
|