perf: check category group name format

This commit is contained in:
lisonge
2024-01-08 20:57:32 +08:00
parent 445bd4c45c
commit 38ace74d98

View File

@@ -189,8 +189,12 @@ export const checkConfig = (newConfig: RawSubscription) => {
app.groups?.forEach((g) => { app.groups?.forEach((g) => {
const oldGroup = oldGroups.find((og) => og.key == g.key); const oldGroup = oldGroups.find((og) => og.key == g.key);
if (!oldGroup || !_.isEqual(oldGroup, g)) { if (!oldGroup || !_.isEqual(oldGroup, g)) {
// 检查新增/变动的规则组是否能被分类捕获 // 检查新增/变动的规则组是否能被分类
if (!categories.some((c) => g.name.startsWith(c.name))) { if (
!categories.some(
(c) => g.name == c.name || g.name.startsWith(c.name + '-'),
)
) {
console.error({ console.error({
configName: newConfig.name, configName: newConfig.name,
appId: app.id, appId: app.id,
@@ -200,7 +204,10 @@ export const checkConfig = (newConfig: RawSubscription) => {
categories: categories.map((c) => c.name), categories: categories.map((c) => c.name),
}); });
throw new Error( throw new Error(
'invalid group name, it must startsWith any category', [
'invalid group name, it must equal any category name or startWith categoryName + "-".',
'example: "开屏广告" or "分段广告-朋友圈"',
].join('\n'),
); );
} }
} }