const fs = require('fs');
const path = require('path');
const ROOT_DIR = path.join(__dirname, '..', '..');
const README_PATH = path.join(ROOT_DIR, 'diagrams/class/README.md');
const DIAGRAMS = [
{ key: 'class-cart', file: 'diagrams/class/class-cart.mmd' },
{ key: 'class-product', file: 'diagrams/class/class-product.mmd' }
];
let readme = fs.readFileSync(README_PATH, 'utf8');
let hasChanges = false;
DIAGRAMS.forEach(({ key, file }) => {
const filePath = path.join(ROOT_DIR, file);
if (!fs.existsSync(filePath)) {
console.log(`Class: Файл ${path.relative(ROOT_DIR, file)} не найден`);
process.exit(1);
}
const mmdContent = fs.readFileSync(filePath, 'utf8').trim();
const mermaidBlock = `\`\`\`mermaid\n${mmdContent}\n\`\`\``;
const startTag = `<!-- MERMAID_START:${key} -->`;
const endTag = `<!-- MERMAID_END:${key} -->`;
const regex = new RegExp(`${startTag}[\\s\\S]*?${endTag}`, 'g');
if (regex.test(readme)) {
const newContent = `${startTag}\n${mermaidBlock}\n${endTag}`;
const oldMatch = readme.match(regex)?.[0] || '';
if (oldMatch !== newContent) {
readme = readme.replace(regex, newContent);
fs.writeFileSync(README_PATH, readme, 'utf8');
console.log('Class: README.md обновлен');
}
else
console.log('Class: README.md не требует обновлений');
} else {
console.log(`Class: Маркеры для ${key} не найдены в README.md`);
process.exit(1);
}
});