fix(arch-scan): 修复多语言扫描器并添加 DELETE 清空表
- scanner.ts: 添加 DELETE 清空旧数据语句,避免重复插入 - ts-scanner: 改用 regex 替代 ts-morph 解析(避免解析失败) - go-scanner/py-scanner/proto-scanner: 完善实现
This commit is contained in:
@@ -1,17 +1,22 @@
|
||||
#!/usr/bin/env tsx
|
||||
import { createDb } from './schema.js';
|
||||
import { scanTypeScript } from './scanners/ts-scanner.js';
|
||||
import { scanGo } from './scanners/go-scanner.js';
|
||||
import { scanPython } from './scanners/py-scanner.js';
|
||||
import { scanProtobuf } from './scanners/proto-scanner.js';
|
||||
import path from 'node:path';
|
||||
import { createDb } from "./schema.js";
|
||||
import { scanTypeScript } from "./scanners/ts-scanner.js";
|
||||
import { scanGo } from "./scanners/go-scanner.js";
|
||||
import { scanPython } from "./scanners/py-scanner.js";
|
||||
import { scanProtobuf } from "./scanners/proto-scanner.js";
|
||||
import path from "node:path";
|
||||
|
||||
const ROOT = process.cwd();
|
||||
|
||||
function main(): void {
|
||||
const db = createDb(path.join(ROOT, 'arch.db'));
|
||||
const db = createDb(path.join(ROOT, "arch.db"));
|
||||
|
||||
console.log('🔍 arch-scan: 开始多语言扫描...');
|
||||
// 清空旧数据(避免重跑产生重复符号)
|
||||
db.exec(
|
||||
"DELETE FROM calls; DELETE FROM dependencies; DELETE FROM symbols; DELETE FROM contracts; DELETE FROM events; DELETE FROM modules;",
|
||||
);
|
||||
|
||||
console.log("🔍 arch-scan: 开始多语言扫描...");
|
||||
|
||||
// 串行扫描(并行会导致 FOREIGN KEY 错误)
|
||||
const tsStats = scanTypeScript(db, ROOT);
|
||||
@@ -26,8 +31,8 @@ function main(): void {
|
||||
const protoStats = scanProtobuf(db, ROOT);
|
||||
console.log(` Protobuf: ${protoStats.contracts} 契约`);
|
||||
|
||||
console.log('✅ arch-scan 完成');
|
||||
console.log("✅ arch-scan 完成");
|
||||
db.close();
|
||||
}
|
||||
|
||||
main();
|
||||
main();
|
||||
|
||||
Reference in New Issue
Block a user