import { DB_PATH } from "$lib/utils/constants"; import { logger } from "$lib/utils/logger"; import { Database, Statement } from "bun:sqlite"; export class SSLSnifferApp { private static initialized = false private static db: Database // UGLY: should be more flexible public static init() { logger.debug("Initializing Database", "SSLSnifferApp") if (SSLSnifferApp.initialized) { logger.debug("database initialized Twice?", "SSLSnifferApp") throw new Error("SSLSniffer has already been initialized") } SSLSnifferApp.db = SSLSnifferApp.initDatabase() SSLSnifferApp.initialized = true } public static prepare(query: string) { return SSLSnifferApp.db.prepare(query) } private static initDatabase() { const db = new Database( DB_PATH, { create: true, strict: true } ) // Improve performance db.exec("PRAGMA journal_mode = WAL;"); // Activate cascade operations db.exec("PRAGMA foreign_keys = ON") return db } private static closeDatabase(graceful?: boolean) { if (!graceful) { graceful = true } // Change of variable to make it more readable const forceful = !graceful SSLSnifferApp.db.close(forceful) } }