util.ts31 lines · main
| 1 | import crypto from 'crypto-js' |
| 2 | |
| 3 | import { |
| 4 | ENCRYPTION_KEY, |
| 5 | POSTGRES_DATABASE, |
| 6 | POSTGRES_HOST, |
| 7 | POSTGRES_PASSWORD, |
| 8 | POSTGRES_PORT, |
| 9 | POSTGRES_USER_READ_ONLY, |
| 10 | POSTGRES_USER_READ_WRITE, |
| 11 | } from './constants' |
| 12 | import { IS_PLATFORM } from '@/lib/constants' |
| 13 | |
| 14 | /** |
| 15 | * Asserts that the current environment is self-hosted. |
| 16 | */ |
| 17 | export function assertSelfHosted() { |
| 18 | if (IS_PLATFORM) { |
| 19 | throw new Error('This function can only be called in self-hosted environments') |
| 20 | } |
| 21 | } |
| 22 | |
| 23 | export function encryptString(stringToEncrypt: string): string { |
| 24 | return crypto.AES.encrypt(stringToEncrypt, ENCRYPTION_KEY).toString() |
| 25 | } |
| 26 | |
| 27 | export function getConnectionString({ readOnly }: { readOnly: boolean }) { |
| 28 | const postgresUser = readOnly ? POSTGRES_USER_READ_ONLY : POSTGRES_USER_READ_WRITE |
| 29 | |
| 30 | return `postgresql://${postgresUser}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DATABASE}` |
| 31 | } |