refactor: split memory manager internals

This commit is contained in:
Peter Steinberger
2026-01-18 03:09:28 +00:00
parent 8350758635
commit c00ea63bb0
5 changed files with 740 additions and 621 deletions

25
src/memory/sqlite-vec.ts Normal file
View File

@@ -0,0 +1,25 @@
import type { DatabaseSync } from "node:sqlite";
export async function loadSqliteVecExtension(params: {
db: DatabaseSync;
extensionPath?: string;
}): Promise<{ ok: boolean; extensionPath?: string; error?: string }> {
try {
const sqliteVec = await import("sqlite-vec");
const resolvedPath = params.extensionPath?.trim() ? params.extensionPath.trim() : undefined;
const extensionPath = resolvedPath ?? sqliteVec.getLoadablePath();
params.db.enableLoadExtension(true);
if (resolvedPath) {
params.db.loadExtension(extensionPath);
} else {
sqliteVec.load(params.db);
}
return { ok: true, extensionPath };
} catch (err) {
const message = err instanceof Error ? err.message : String(err);
return { ok: false, error: message };
}
}