/** Fix broken :formatter insertion from normalize-lobster-dates.js */ const fs = require('fs') const path = require('path') const ROOT = path.resolve(__dirname, '../..') const UI_DIRS = [ path.join(ROOT, 'saas-companyui/src/views/lobster'), path.join(ROOT, 'saas-mgnui/src/views/lobster'), path.join(ROOT, 'adminui/src/views/lobster') ] function walk(dir, files = []) { if (!fs.existsSync(dir)) return files for (const name of fs.readdirSync(dir)) { const full = path.join(dir, name) if (fs.statSync(full).isDirectory()) walk(full, files) else if (name.endsWith('.vue')) files.push(full) } return files } function fix(content) { let out = content out = out.replace(/\s+\/\s+:formatter="lobsterTimeFormatter">/g, ' :formatter="lobsterTimeFormatter" />') out = out.replace(/width="160"\/ :formatter="lobsterTimeFormatter"><\/el-table>/g, 'width="160" :formatter="lobsterTimeFormatter">') return out } let changed = 0 for (const dir of UI_DIRS) { for (const file of walk(dir)) { const original = fs.readFileSync(file, 'utf8') const next = fix(original) if (next !== original) { fs.writeFileSync(file, next, 'utf8') changed++ console.log('fixed', path.relative(ROOT, file)) } } } console.log('fixed files:', changed)