import { DatabaseSync, type SQLInputValue } from "node:sqlite" export class Database { readonly #database: DatabaseSync constructor(file: string, options?: { readonly?: boolean }) { this.#database = new DatabaseSync(file, { readOnly: options?.readonly }) } query(sql: string) { const statement = this.#database.prepare(sql) return { all: (parameters?: Record) => (parameters ? statement.all(parameters) : statement.all()), get: (parameters?: Record) => (parameters ? statement.get(parameters) : statement.get()), } } close() { this.#database.close() } }