umami/src/lib/db.ts
Francis Cao c9f522b24d
Some checks failed
Node.js CI / build (postgresql, 18.18, 10) (push) Has been cancelled
remove MySQL references from README
2025-10-31 09:12:32 -07:00

40 lines
848 B
TypeScript

export const PRISMA = 'prisma';
export const POSTGRESQL = 'postgresql';
export const CLICKHOUSE = 'clickhouse';
export const KAFKA = 'kafka';
export const KAFKA_PRODUCER = 'kafka-producer';
// Fixes issue with converting bigint values
BigInt.prototype['toJSON'] = function () {
return Number(this);
};
export function getDatabaseType(url = process.env.DATABASE_URL) {
const type = url && url.split(':')[0];
if (type === 'postgres') {
return POSTGRESQL;
}
return type;
}
export async function runQuery(queries: any) {
if (process.env.CLICKHOUSE_URL) {
if (queries[KAFKA]) {
return queries[KAFKA]();
}
return queries[CLICKHOUSE]();
}
const db = getDatabaseType();
if (db === POSTGRESQL) {
return queries[PRISMA]();
}
}
export function notImplemented() {
throw new Error('Not implemented.');
}