import { TransactionManager } from "./transaction_manager.mjs"; export class DatabaseWrapper { constructor(dbName, version) { this.name = dbName; this.db = openDatabase(this.name, version, "", 5 * 1024 * 1024); this.transManager = new TransactionManager(this.db); } sql(sql, ...args) { const reg = /^\s*(BEGIN|END|COMMIT|ROLLBACK)(?:[^A-Z]|$)/i; const match = reg.exec(sql); if (match) { const statement = match[1].toUpperCase(); switch(statement) { case "BEGIN": return this.transManager.begin(); case "END": case "COMMIT": return this.transManager.commit(); case "ROLLBACK": return this.transManager.rollback(); } } else { return this.transManager.sql(sql, args); } } }