import { PGlite } from '@electric-sql/pglite'
import { drizzle } from 'drizzle-orm/pglite'
import type { PgliteDatabase } from 'drizzle-orm/pglite'
import type { Schema } from '../index.js'

export function createPgliteClient<S extends Schema>(opts: {
  schema?: S
  dataDir?: string
} = {}): PgliteDatabase<S> {
  const client = opts.dataDir !== undefined ? new PGlite(opts.dataDir) : new PGlite()
  return drizzle(client, { schema: opts.schema })
}
