← Files BranchaARCHIVED FILE

skills/brancha/app/src/server/db/connection.ts

585 Bytes · Oct 4, 2026 · 12:29 UTC

↓ Download file

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