|
2 | 2 |
|
3 | 3 | import fs from 'node:fs'; |
4 | 4 | import path from 'node:path'; |
5 | | -import Database from 'better-sqlite3'; |
6 | 5 | import { Command } from 'commander'; |
7 | 6 | import { buildGraph } from './builder.js'; |
8 | 7 | import { loadConfig } from './config.js'; |
9 | 8 | import { findCycles, formatCycles } from './cycles.js'; |
10 | | -import { findDbPath } from './db.js'; |
| 9 | +import { openReadonlyOrFail } from './db.js'; |
11 | 10 | import { buildEmbeddings, EMBEDDING_STRATEGIES, MODELS, search } from './embedder.js'; |
12 | 11 | import { exportDOT, exportJSON, exportMermaid } from './export.js'; |
13 | 12 | import { setVerbose } from './logger.js'; |
@@ -275,7 +274,7 @@ program |
275 | 274 | .option('--min-confidence <score>', 'Minimum edge confidence threshold (default: 0.5)', '0.5') |
276 | 275 | .option('-o, --output <file>', 'Write to file instead of stdout') |
277 | 276 | .action((opts) => { |
278 | | - const db = new Database(findDbPath(opts.db), { readonly: true }); |
| 277 | + const db = openReadonlyOrFail(opts.db); |
279 | 278 | const exportOpts = { |
280 | 279 | fileLevel: !opts.functions, |
281 | 280 | noTests: resolveNoTests(opts), |
@@ -314,7 +313,7 @@ program |
314 | 313 | .option('--include-tests', 'Include test/spec files (overrides excludeTests config)') |
315 | 314 | .option('-j, --json', 'Output as JSON') |
316 | 315 | .action((opts) => { |
317 | | - const db = new Database(findDbPath(opts.db), { readonly: true }); |
| 316 | + const db = openReadonlyOrFail(opts.db); |
318 | 317 | const cycles = findCycles(db, { fileLevel: !opts.functions, noTests: resolveNoTests(opts) }); |
319 | 318 | db.close(); |
320 | 319 |
|
|
0 commit comments