#!/usr/bin/env node
const fs = require("fs");
const path = require("path");
const ROOT = path.join(__dirname, "..");
function walkDir(dir, files = []) {
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
const full = path.join(dir, entry.name);
if (entry.isDirectory()) walkDir(full, files);
else if (entry.name.endsWith(".vue")) files.push(full);
}
return files;
}
function fix(content) {
let c = content;
c = c.replace(/
/g, "");
c = c.replace(
/([\s\S]*?<\/p>)(\s*
$2"
);
c = c.replace(
/
]*)>([\s\S]*?)<\/div><\/template><\/el-dialog>/g,
"
$2
\n "
);
c = c.replace(
/
([\s\S]*?)<\/template\s*>/g,
(match, inner) => {
if (match.includes("el-alert")) {
return `${inner}`;
}
return match;
}
);
return c;
}
let count = 0;
for (const file of walkDir(path.join(ROOT, "src"))) {
const original = fs.readFileSync(file, "utf8");
const fixed = fix(original);
if (fixed !== original) {
fs.writeFileSync(file, fixed);
count++;
}
}
console.log(`Fixed dialog slots in ${count} files`);