/* eslint-disable @typescript-eslint/no-explicit-any */ import { Database, Statement } from "sqlite3"; export function dbRun(db: Database, statement: string): Promise { return new Promise((resolve, reject) => { db.run(statement, (err) => { if (err) { reject(err); } else { resolve(); } }); }); } export function dbClose(db: Database): Promise { return new Promise((resolve, reject) => { db.close((err) => { if (err) { reject(err); } else { resolve(); } }); }); } export function prepare(db: Database, statement: string): Promise { return new Promise((resolve, reject) => { const stmt = db.prepare(statement, (err) => { if (err) { reject(err); } else { resolve(stmt); } }); }); } export function run( stmt: Statement, params: Record, ): Promise { return new Promise((resolve, reject) => { stmt.run(params, (err: Error | null) => { if (err) { reject(err); } else { resolve(); } }); }); } export function getAll( stmt: Statement, params: Record, transformer: (row: any) => any, ): Promise[]> { return new Promise((resolve, reject) => { stmt.all(params, (err: Error | null, rows: Record[]) => { if (err) { reject(err); } else { resolve(rows.map(transformer)); } }); }); } export function getOne( stmt: Statement, params: Record, transformer: (row: any) => any, ): Promise> { return new Promise((resolve, reject) => { stmt.all(params, (err: Error | null, rows: Record[]) => { if (err) { reject(err); } else { resolve(rows.map(transformer)[0]); } }); }); } export function finalize(stmt: Statement): Promise { return new Promise((resolve, reject) => { stmt.finalize((err) => { if (err) { reject(err); } else { resolve(); } }); }); }