fix-lobster-date-formatter.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /** Fix broken :formatter insertion from normalize-lobster-dates.js */
  2. const fs = require('fs')
  3. const path = require('path')
  4. const ROOT = path.resolve(__dirname, '../..')
  5. const UI_DIRS = [
  6. path.join(ROOT, 'saas-companyui/src/views/lobster'),
  7. path.join(ROOT, 'saas-mgnui/src/views/lobster'),
  8. path.join(ROOT, 'adminui/src/views/lobster')
  9. ]
  10. function walk(dir, files = []) {
  11. if (!fs.existsSync(dir)) return files
  12. for (const name of fs.readdirSync(dir)) {
  13. const full = path.join(dir, name)
  14. if (fs.statSync(full).isDirectory()) walk(full, files)
  15. else if (name.endsWith('.vue')) files.push(full)
  16. }
  17. return files
  18. }
  19. function fix(content) {
  20. let out = content
  21. out = out.replace(/\s+\/\s+:formatter="lobsterTimeFormatter">/g, ' :formatter="lobsterTimeFormatter" />')
  22. out = out.replace(/width="160"\/ :formatter="lobsterTimeFormatter"><\/el-table>/g,
  23. 'width="160" :formatter="lobsterTimeFormatter"></el-table-column></el-table>')
  24. return out
  25. }
  26. let changed = 0
  27. for (const dir of UI_DIRS) {
  28. for (const file of walk(dir)) {
  29. const original = fs.readFileSync(file, 'utf8')
  30. const next = fix(original)
  31. if (next !== original) {
  32. fs.writeFileSync(file, next, 'utf8')
  33. changed++
  34. console.log('fixed', path.relative(ROOT, file))
  35. }
  36. }
  37. }
  38. console.log('fixed files:', changed)