chore: unify log formatting
This commit is contained in:
+7
-6
@@ -1,6 +1,7 @@
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
import { chat } from './llm.js';
|
||||
import { ok, warn, error } from './log.js';
|
||||
|
||||
const MAX_JSON_BYTES = 1024 * 1024;
|
||||
|
||||
@@ -50,25 +51,25 @@ export async function validateJSONArrayFile(fullPath, label, repairer = repairJS
|
||||
fs.mkdirSync(path.dirname(fullPath), { recursive: true });
|
||||
|
||||
if (!fs.existsSync(fullPath)) {
|
||||
console.log(` ⚠️ ${label} 不存在,將於驗證後補建`);
|
||||
warn(`${label} 不存在,將於驗證後補建`);
|
||||
return { exists: false, valid: false, repaired: false };
|
||||
}
|
||||
|
||||
try {
|
||||
JSON.parse(readJSONText(fullPath, label));
|
||||
console.log(` ✅ ${label} JSON 格式正確`);
|
||||
ok(`${label} JSON 格式正確`);
|
||||
return { exists: true, valid: true, repaired: false };
|
||||
} catch (e) {
|
||||
console.error(` ❌ ${label} JSON 格式錯誤: ${e.message},嘗試透過 AI 修正...`);
|
||||
error(`${label} JSON 格式錯誤: ${e.message},嘗試透過 AI 修正...`);
|
||||
try {
|
||||
const original = readJSONText(fullPath, label);
|
||||
const repaired = await repairer(fullPath, label, original);
|
||||
fs.writeFileSync(fullPath, repaired.endsWith('\n') ? repaired : `${repaired}\n`, 'utf8');
|
||||
JSON.parse(readJSONText(fullPath, label));
|
||||
console.log(` ✅ ${label} 已由 AI 修正並通過再次驗證`);
|
||||
ok(`${label} 已由 AI 修正並通過再次驗證`);
|
||||
return { exists: true, valid: true, repaired: true };
|
||||
} catch (repairErr) {
|
||||
console.error(` ❌ ${label} 修正失敗: ${repairErr.message}`);
|
||||
error(`${label} 修正失敗: ${repairErr.message}`);
|
||||
throw repairErr;
|
||||
}
|
||||
}
|
||||
@@ -82,6 +83,6 @@ export function ensureJSONArrayFileExists(fullPath, label) {
|
||||
if (fs.existsSync(fullPath)) return false;
|
||||
|
||||
fs.writeFileSync(fullPath, '[]\n', 'utf8');
|
||||
console.log(` ⚠️ ${label} 不存在,已建立空陣列`);
|
||||
warn(`${label} 不存在,已建立空陣列`);
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user