* Open synchronously (without sync)
(projectRoot: string)
| 414 | * Open synchronously (without sync) |
| 415 | */ |
| 416 | static openSync(projectRoot: string): CodeGraph { |
| 417 | const resolvedRoot = path.resolve(projectRoot); |
| 418 | |
| 419 | // Check if initialized |
| 420 | if (!isInitialized(resolvedRoot)) { |
| 421 | throw new Error(`CodeGraph not initialized in ${resolvedRoot}. Run init() first.`); |
| 422 | } |
| 423 | |
| 424 | // Validate directory structure |
| 425 | const validation = validateDirectory(resolvedRoot); |
| 426 | if (!validation.valid) { |
| 427 | throw new Error(`Invalid CodeGraph directory: ${validation.errors.join(', ')}`); |
| 428 | } |
| 429 | |
| 430 | // Open database |
| 431 | const dbPath = getDatabasePath(resolvedRoot); |
| 432 | const db = DatabaseConnection.open(dbPath); |
| 433 | const queries = new QueryBuilder(db.getDb()); |
| 434 | |
| 435 | return new CodeGraph(db, queries, resolvedRoot); |
| 436 | } |
| 437 | |
| 438 | /** |
| 439 | * Check if a directory has been initialized as a CodeGraph project |