fix: 新增应用未记录

This commit is contained in:
AIsouler
2024-03-21 23:12:08 +08:00
parent 2286c951b7
commit 6e8bac9636

View File

@@ -529,7 +529,7 @@ export const updateReadMeMd = async (
) => { ) => {
let changeCount = 0; let changeCount = 0;
const appDiffs: AppDiff[] = []; const appDiffs: AppDiff[] = [];
const globaldiffs: GlobalDiff[] = []; const globalDiffs: GlobalDiff[] = [];
const globalDiffLog = getGlobalDiffLog( const globalDiffLog = getGlobalDiffLog(
oldConfig.globalGroups, oldConfig.globalGroups,
newConfig.globalGroups, newConfig.globalGroups,
@@ -541,24 +541,23 @@ export const updateReadMeMd = async (
globalDiffLog.changeGlobalGroups.length + globalDiffLog.changeGlobalGroups.length +
globalDiffLog.removeGlobalGroups.length; globalDiffLog.removeGlobalGroups.length;
// 如果全局差异的数量大于 0则将其添加到 globaldiffs 中,并增加 changeCount // 如果全局差异的数量大于 0则将其添加到 globalDiffs 中,并增加 changeCount
if (globalDiffCount > 0) { if (globalDiffCount > 0) {
globaldiffs.push({ ...globalDiffLog }); globalDiffs.push({ ...globalDiffLog });
changeCount += globalDiffCount; changeCount += globalDiffCount;
} }
// 遍历新配置中的每个应用程序 // 遍历新配置中的每个应用程序
for (const app of oldConfig.apps || []) { for (const newApp of newConfig.apps || []) {
// 查找配置中具有相同 ID 的应用程序 // 查找配置中具有相同 ID 的应用程序
const newApp = newConfig.apps!.find((a) => a.id === app.id); const oldApp = oldConfig.apps?.find((a) => a.id === newApp.id);
// 如果在旧配置中找不到相同 ID 的应用程序 if (!oldApp || !isEqual(newApp, oldApp)) {
if (!newApp) {
// 增加变更计数 // 增加变更计数
changeCount++; changeCount++;
// 更新应用程序的 Markdown 文件 // 更新应用程序的 Markdown 文件
await updateAppMd(app); await updateAppMd(newApp);
// 获取应用程序组的差异日志 // 获取应用程序组的差异日志
const appDiffLog = getAppDiffLog(app.groups, []); const appDiffLog = getAppDiffLog(newApp.groups, oldApp?.groups || []);
// 如果有新增、修改或删除的组,则将其记录到应用程序差异中 // 如果有新增、修改或删除的组,则将其记录到应用程序差异中
if ( if (
appDiffLog.addGroups.length + appDiffLog.addGroups.length +
@@ -566,29 +565,12 @@ export const updateReadMeMd = async (
appDiffLog.removeGroups.length > appDiffLog.removeGroups.length >
0 0
) { ) {
appDiffs.push({ app, ...appDiffLog }); appDiffs.push({ app: newApp, ...appDiffLog });
}
} else if (!isEqual(newApp, app)) {
// 如果旧应用程序与新应用程序不相等
// 增加变更计数
changeCount++;
// 更新应用程序的 Markdown 文件
await updateAppMd(app);
// 获取应用程序组的差异日志
const appDiffLog = getAppDiffLog(app.groups, newApp.groups);
// 如果有新增、修改或删除的组,则将其记录到应用程序差异中
if (
appDiffLog.addGroups.length +
appDiffLog.changeGroups.length +
appDiffLog.removeGroups.length >
0
) {
appDiffs.push({ app, ...appDiffLog });
} }
} }
} }
if (appDiffs.length > 0 || globaldiffs.length > 0) { if (appDiffs.length > 0 || globalDiffs.length > 0) {
const addGroupsCount = appDiffs.reduce((p, c) => p + c.addGroups.length, 0); const addGroupsCount = appDiffs.reduce((p, c) => p + c.addGroups.length, 0);
const changeGroupsCount = appDiffs.reduce( const changeGroupsCount = appDiffs.reduce(
(p, c) => p + c.changeGroups.length, (p, c) => p + c.changeGroups.length,
@@ -598,15 +580,15 @@ export const updateReadMeMd = async (
(p, c) => p + c.removeGroups.length, (p, c) => p + c.removeGroups.length,
0, 0,
); );
const addGlobalGroupsCount = globaldiffs.reduce( const addGlobalGroupsCount = globalDiffs.reduce(
(p, c) => p + c.addGlobalGroups.length, (p, c) => p + c.addGlobalGroups.length,
0, 0,
); );
const changeGlobalGroupsCount = globaldiffs.reduce( const changeGlobalGroupsCount = globalDiffs.reduce(
(p, c) => p + c.changeGlobalGroups.length, (p, c) => p + c.changeGlobalGroups.length,
0, 0,
); );
const removeGlobalGroupsCount = globaldiffs.reduce( const removeGlobalGroupsCount = globalDiffs.reduce(
(p, c) => p + c.removeGlobalGroups.length, (p, c) => p + c.removeGlobalGroups.length,
0, 0,
); );
@@ -645,7 +627,7 @@ export const updateReadMeMd = async (
.join('\n') + .join('\n') +
'\n\n---\n\n' + '\n\n---\n\n' +
'|全局规则|新增|变动|移除|\n|-|-|-|-|\n' + '|全局规则|新增|变动|移除|\n|-|-|-|-|\n' +
globaldiffs globalDiffs
.map((a) => .map((a) =>
[ [
'', '',