← Files BranchaARCHIVED FILE
skills/brancha/app/src/server/db/connection.ts
585 Bytes · Oct 4, 2026 · 12:29 UTC
import { randomUUID } from 'node:crypto';
import { join } from 'node:path';
import { DatabaseSync } from 'node:sqlite';
import { dataDirectory } from '../data-directory.js';
export const database = new DatabaseSync(join(dataDirectory, 'brancha.db'));
export function transaction<T>(operation: () => T): T {
database.exec('BEGIN IMMEDIATE');
try {
const result = operation();
database.exec('COMMIT');
return result;
} catch (error) {
database.exec('ROLLBACK');
throw error;
}
}
export const createId = () => randomUUID().replaceAll('-', '').slice(0, 12);
SHA-256: b04d44094757fd40c4c0d9634ddb44dda841421f6208854d1f65fea06e247a5c