/** * Kysely database client * * @module @reviq/db */ import type { Database } from "@reviq/db-schema"; import { Kysely, PostgresDialect } from "kysely"; import pg from "pg"; const { Pool } = pg; /** * Creates a new Kysely database client * * @param connectionString - PostgreSQL connection string (required) * @returns Kysely database instance * @throws Error if connectionString is empty */ export const createDb = (connectionString: string): Kysely => { if (!connectionString) { throw new Error("Database connection string is required"); } const dialect = new PostgresDialect({ pool: new Pool({ connectionString, }), }); return new Kysely({ dialect, }); };