mirror of
https://github.com/mudabbir-ahmad/peworkshop.git
synced 2026-10-07 19:50:20 +00:00
SCANNER WORKS!!! JUST ADD THE MORE CLUE BUTTONS !!! AND NEXT CLUE ERROR CHECKING
This commit is contained in:
1 parent
07099ba6b4
commit
02a0088d28
11 files changed
+861
-217
No files matched your search
@@ -1,5 +1,6 @@
|
||||
import sqlite3 from "sqlite3";
|
||||
|
||||
// Create a singleton database connection
|
||||
let db = null;
|
||||
|
||||
export function getDb() {
|
||||
@@ -15,11 +16,12 @@ export function getDb() {
|
||||
return db;
|
||||
}
|
||||
|
||||
// Execute a query that returns a single row
|
||||
export function queryOne(sql, params = []) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const db = getDb();
|
||||
if (!db) {
|
||||
reject(new Error("Database connection not available"));
|
||||
reject(Error("Database connection not available"));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -31,17 +33,17 @@ export function queryOne(sql, params = []) {
|
||||
reject(err);
|
||||
return;
|
||||
}
|
||||
|
||||
resolve(row);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// Execute a query that returns multiple rows
|
||||
export function query(sql, params = []) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const db = getDb();
|
||||
if (!db) {
|
||||
reject(new Error("Database connection not available"));
|
||||
reject(Error("Database connection not available"));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -53,23 +55,23 @@ export function query(sql, params = []) {
|
||||
reject(err);
|
||||
return;
|
||||
}
|
||||
|
||||
resolve(rows || []);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// Execute a query that doesn't return results (INSERT, UPDATE, DELETE)
|
||||
export function run(sql, params = []) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const db = getDb();
|
||||
if (!db) {
|
||||
const error = new Error("Database connection not available");
|
||||
const error = Error("Database connection not available");
|
||||
console.error(error);
|
||||
reject(error);
|
||||
return;
|
||||
}
|
||||
|
||||
// Add better logging
|
||||
// Log transaction operations for debugging
|
||||
if (
|
||||
sql.toLowerCase().includes("begin") ||
|
||||
sql.toLowerCase().includes("commit") ||
|
||||
@@ -86,15 +88,31 @@ export function run(sql, params = []) {
|
||||
reject(err);
|
||||
return;
|
||||
}
|
||||
|
||||
resolve({
|
||||
lastID: this.lastID,
|
||||
changes: this.changes,
|
||||
});
|
||||
resolve({ lastID: this.lastID, changes: this.changes });
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// Close database connection - useful for tests and clean shutdown
|
||||
export function closeDb() {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (db) {
|
||||
db.close((err) => {
|
||||
if (err) {
|
||||
console.error("Error closing database:", err.message);
|
||||
reject(err);
|
||||
} else {
|
||||
console.log("Database connection closed");
|
||||
db = null;
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// New function to explicitly enable foreign keys
|
||||
export function enableForeignKeys() {
|
||||
return run("PRAGMA foreign_keys = ON;")
|
||||
|
||||
Reference in new issue
Block a user