fix: 修改文件名大小写
This commit is contained in:
60
tools/sortJson.js
Normal file
60
tools/sortJson.js
Normal file
@@ -0,0 +1,60 @@
|
||||
const { log } = require("console");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
const folderPath = "./configs";
|
||||
const scope = [
|
||||
"StdItems",
|
||||
// "ItemMergeConfig", "MergeConfig", "MergeTotal", "RecyclingSettingConfig", "UpstarConfig", "Monster"
|
||||
];
|
||||
|
||||
// 自定义排序函数
|
||||
function customSort(arr) {
|
||||
return arr.sort((a, b) => {
|
||||
const isANumeric = !isNaN(a);
|
||||
const isBNumeric = !isNaN(b);
|
||||
if (isANumeric && isBNumeric) {
|
||||
return parseFloat(a) - parseFloat(b);
|
||||
} else if (isANumeric) {
|
||||
return -1;
|
||||
} else if (typeof a == "object") {
|
||||
return -1;
|
||||
} else if (isBNumeric) {
|
||||
return 1;
|
||||
} else {
|
||||
return a.localeCompare(b);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 递归排序函数
|
||||
function sortObject(obj) {
|
||||
if (Array.isArray(obj)) {
|
||||
// 如果是数组,使用自定义排序函数
|
||||
return customSort(obj.map((item) => sortObject(item)));
|
||||
} else if (typeof obj === "object" && obj !== null) {
|
||||
// 如果是对象,递归处理每个属性
|
||||
const sortedObj = {};
|
||||
Object.keys(obj)
|
||||
.sort()
|
||||
.forEach((key) => {
|
||||
sortedObj[key] = sortObject(obj[key]);
|
||||
});
|
||||
return sortedObj;
|
||||
} else {
|
||||
// 如果是基本类型,直接返回
|
||||
return obj;
|
||||
}
|
||||
}
|
||||
const start = () => {
|
||||
const files = fs.readdirSync(folderPath);
|
||||
// 过滤出所有的 JSON 文件
|
||||
const jsonFiles = files.filter((file) => path.extname(file) === ".json").filter((file) => scope.map((e) => `${e}.json`).includes(file));
|
||||
jsonFiles.forEach((file) => {
|
||||
const json = JSON.parse(fs.readFileSync(path.join(folderPath, file), "utf8"));
|
||||
const filename = path.basename(file, path.extname(file));
|
||||
const sortedJson = sortObject(json);
|
||||
const jsonstr = JSON.stringify(sortedJson, null, 2);
|
||||
fs.writeFileSync(`${folderPath}/${filename}.json`, jsonstr);
|
||||
});
|
||||
};
|
||||
start();
|
||||
Reference in New Issue
Block a user