* Open synchronously (without sync)
(projectRoot: string)
| 379 | * Open synchronously (without sync) |
| 380 | */ |
| 381 | static openSync(projectRoot: string): CodeGraph { |
| 382 | const resolvedRoot = path.resolve(projectRoot); |
| 383 | |
| 384 | // Check if initialized |
| 385 | if (!isInitialized(resolvedRoot)) { |
| 386 | throw new Error(`CodeGraph not initialized in ${resolvedRoot}. Run init() first.`); |
| 387 | } |
| 388 | |
| 389 | // Validate directory structure |
| 390 | const validation = validateDirectory(resolvedRoot); |
| 391 | if (!validation.valid) { |
| 392 | throw new Error(`Invalid CodeGraph directory: ${validation.errors.join(', ')}`); |
| 393 | } |
| 394 | |
| 395 | // Open database |
| 396 | const dbPath = getDatabasePath(resolvedRoot); |
| 397 | const db = DatabaseConnection.open(dbPath); |
| 398 | const queries = new QueryBuilder(db.getDb()); |
| 399 | |
| 400 | return new CodeGraph(db, queries, resolvedRoot); |
| 401 | } |
| 402 | |
| 403 | /** |
| 404 | * Check if a directory has been initialized as a CodeGraph project |