← back to Trademarks Copyright

src/lib/db.ts

29 lines

import { Pool } from "pg";

declare global {
  // eslint-disable-next-line no-var
  var _pgPool: Pool | undefined;
}

export const pool =
  global._pgPool ??
  (process.env.DATABASE_URL
    ? new Pool({ connectionString: process.env.DATABASE_URL })
    : new Pool({
        // Unix-socket connect — matches local Postgres peer auth, no password.
        host: "/tmp",
        port: 5432,
        database: "trademarks_copyright",
        user: process.env.USER || "stevestudio2",
      }));

if (process.env.NODE_ENV !== "production") global._pgPool = pool;

export async function query<T = unknown>(
  text: string,
  params: unknown[] = []
): Promise<{ rows: T[] }> {
  const result = await pool.query(text, params as never);
  return { rows: result.rows as T[] };
}