initial commit

This commit is contained in:
Florian Zumpe
2026-06-16 10:31:41 +02:00
parent e607876d37
commit eb559b16fb
282 changed files with 3118 additions and 41422 deletions
+27
View File
@@ -0,0 +1,27 @@
import fs from 'node:fs';
import path from 'node:path';
import { DatabaseSync } from 'node:sqlite';
import { config } from './config.js';
export function openDatabase(filename = path.join(config.dataDir, 'wegwichtel.sqlite')) {
const db = new DatabaseSync(filename, {
enableForeignKeyConstraints: true,
timeout: 5000
});
db.exec('PRAGMA journal_mode = WAL; PRAGMA busy_timeout = 5000;');
const schema = fs.readFileSync(path.join(config.projectRoot, 'database', 'schema.sql'), 'utf8');
db.exec(schema);
return db;
}
export function transaction(db, callback) {
db.exec('BEGIN IMMEDIATE');
try {
const result = callback();
db.exec('COMMIT');
return result;
} catch (error) {
db.exec('ROLLBACK');
throw error;
}
}