2024-04-21 23:31:37 -07:00
|
|
|
const sqlite3 = require('sqlite3');
|
|
|
|
const fs = require('fs');
|
|
|
|
|
2024-06-12 03:00:50 -07:00
|
|
|
const path = 'vybe.db';
|
2024-04-21 23:31:37 -07:00
|
|
|
|
2024-06-12 03:00:50 -07:00
|
|
|
const existed = fs.existsSync(path);
|
|
|
|
const db = new sqlite3.Database(path);
|
2024-04-21 23:31:37 -07:00
|
|
|
|
2025-06-27 00:31:56 -07:00
|
|
|
db.query = function(sql, params) {
|
2024-04-21 23:31:37 -07:00
|
|
|
return new Promise((resolve, reject) => {
|
2024-09-25 17:33:33 -07:00
|
|
|
db.all(sql, params, (error, rows) => {
|
2024-04-21 23:31:37 -07:00
|
|
|
if (error)
|
|
|
|
reject(error);
|
|
|
|
else
|
|
|
|
resolve({ rows: rows });
|
|
|
|
});
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
2025-06-27 00:31:56 -07:00
|
|
|
db.ready = new Promise(async resolve => {
|
2024-06-12 03:00:50 -07:00
|
|
|
if (!existed)
|
|
|
|
for (let sql of fs.readFileSync('./db/1-init.sql').toString().split(';'))
|
|
|
|
if (sql.trim())
|
|
|
|
await db.query(sql);
|
2025-06-27 00:31:56 -07:00
|
|
|
resolve();
|
|
|
|
});
|
2024-04-21 23:31:37 -07:00
|
|
|
|
|
|
|
module.exports = db;
|