Files
EJClaw/src/db/runtime-database.ts
2026-04-11 08:09:29 +09:00

35 lines
890 B
TypeScript

import { Database } from 'bun:sqlite';
import {
openInitializedDatabaseFromFile,
openInitializedInMemoryDatabase,
openInitializedPersistentDatabase,
} from './database-lifecycle.js';
let db: Database | undefined;
export function initDatabase(): void {
db = openInitializedPersistentDatabase();
}
/** @internal - for tests only. Creates a fresh in-memory database. */
export function _initTestDatabase(): void {
db = openInitializedInMemoryDatabase();
}
/** @internal - for tests only. Opens an existing database file and runs schema/migrations. */
export function _initTestDatabaseFromFile(dbPath: string): void {
db = openInitializedDatabaseFromFile(dbPath);
}
export function requireDatabase(): Database {
if (!db) {
throw new Error('Database not initialized');
}
return db;
}
export function getDatabaseIfInitialized(): Database | undefined {
return db;
}