import sqlite3 from 'sqlite3'; //TODO // MUTEX functions for adding/removing/upsert // basic read function by id // complex read function by value range async function InitTable() { const db = new sqlite3.Database('bot_data'); try{ await runQuery(db,'CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)') console.log('Table created successfully.'); // Insert data await runQuery(db, 'INSERT INTO users (name) VALUES (?)', ['Alice']); console.log('Data inserted successfully.'); // Retrieve a single row const row = await getQuery(db, 'SELECT * FROM users WHERE name = ?', ['Alice']); console.log('Retrieved row:', row); // Retrieve all rows const rows = await allQuery(db, 'SELECT * FROM users'); console.log('All rows:', rows); } catch (err: any) { console.error('Database error:', err.message); } finally { db.close(); } } function runQuery(db: sqlite3.Database, query: string, params: string[] = []) { return new Promise((resolve,reject) => { db.run(query, params, function (err) { if(err){ reject(err); } else{ resolve(this); } }); }); } function getQuery(db: sqlite3.Database, query: string, params: string[] = []) { return new Promise((resolve, reject) => { db.get(query, params, (err, row) => { if (err) { reject(err); } else { resolve(row); } }); }); } function allQuery(db: sqlite3.Database, query: string, params: string[] = []) { return new Promise((resolve, reject) => { db.all(query, params, (err, rows) => { if (err) { reject(err); } else { resolve(rows); } }); }); } export { InitTable }