forked from OpenWF/SpaceNinjaServer
Reviewed-on: OpenWF/SpaceNinjaServer#2408 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
47 lines
1.4 KiB
JavaScript
47 lines
1.4 KiB
JavaScript
/* eslint-disable */
|
|
const fs = require("fs");
|
|
const path = require("path");
|
|
|
|
const root = path.join(process.cwd(), "..");
|
|
|
|
function listFiles(dir) {
|
|
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
let results = [];
|
|
for (const entry of entries) {
|
|
const fullPath = path.join(dir, entry.name);
|
|
if (entry.isDirectory()) {
|
|
results = results.concat(listFiles(fullPath));
|
|
} else {
|
|
results.push(fullPath);
|
|
}
|
|
}
|
|
return results;
|
|
}
|
|
|
|
const files = listFiles(path.join(root, "src"));
|
|
|
|
for (const file of files) {
|
|
let content;
|
|
try {
|
|
content = fs.readFileSync(file, "utf8");
|
|
} catch (e) {
|
|
continue;
|
|
}
|
|
const dir = path.dirname(file);
|
|
const fixedContent = content.replaceAll(/} from "([^"]+)";/g, (sub, importPath) => {
|
|
if (!importPath.startsWith("@/")) {
|
|
const fullImportPath = path.resolve(dir, importPath);
|
|
if (fs.existsSync(fullImportPath + ".ts")) {
|
|
const relative = path.relative(root, fullImportPath).replace(/\\/g, "/");
|
|
const fixedPath = "@/" + relative;
|
|
console.log(`${importPath} -> ${fixedPath}`);
|
|
return sub.split(importPath).join(fixedPath);
|
|
}
|
|
}
|
|
return sub;
|
|
});
|
|
if (content != fixedContent) {
|
|
fs.writeFileSync(file, fixedContent, "utf8");
|
|
}
|
|
}
|