const fs = require('fs'); const path = require('path'); const map = { ',': ',', '.': '.', ':': ':', '?': '?', '!': '!', '"': '"', '"': '"', ''': "'", ''': "'", '(': '(', ')': ')', '[': '[', ']': ']', ',': ',', ';': ';' }; function getAllFiles(dirPath, arrayOfFiles) { const files = fs.readdirSync(dirPath); arrayOfFiles = arrayOfFiles || []; files.forEach(function(file) { if (fs.statSync(dirPath + "/" + file).isDirectory()) { arrayOfFiles = getAllFiles(dirPath + "/" + file, arrayOfFiles); } else { if (extensions.some(ext => file.endsWith(ext))) { arrayOfFiles.push(path.join(dirPath, "/", file)); } } }); return arrayOfFiles; } const srcDirAPI = path.join(__dirname); const srcDirWEB = path.join(__dirname, '../WEB'); const targetDirs = [srcDirAPI, srcDirWEB]; const extensions = ['.ts', '.js', '.tsx', '.jsx', '.vue', '.html', '.css', '.scss', '.less', '.json', '.md']; let count = 0; targetDirs.forEach(dir => { if (fs.existsSync(dir)) { const files = getAllFiles(dir); files.forEach(file => { // Skip node_modules, .git, dist, build, .idea, .vscode if (file.includes('/node_modules/') || file.includes('/.git/') || file.includes('/dist/') || file.includes('/build/') || file.includes('/.idea/') || file.includes('/.vscode/') || file.includes('/coverage/')) { return; } let content = fs.readFileSync(file, 'utf8'); let originalContent = content; for (const [cn, en] of Object.entries(map)) { const regex = new RegExp(cn, 'g'); content = content.replace(regex, en); } if (content !== originalContent) { fs.writeFileSync(file, content, 'utf8'); console.log(`Updated: ${file}`); count++; } }); } else { console.warn(`Directory not found: ${dir}`); } }); console.log(`Total files updated: ${count}`);