chore: 优化域名match

This commit is contained in:
xiaojunnuo
2024-10-25 17:47:39 +08:00
parent b421798a1b
commit 1cc1d1c03c
5 changed files with 116 additions and 4 deletions
@@ -0,0 +1,42 @@
import { domainUtils } from './util.domain.js';
function groupByDomain(options: any[], inDomains: string[]) {
const matched = [];
const notMatched = [];
for (const item of options) {
if (domainUtils.match(item.domain, inDomains)) {
matched.push(item);
} else {
notMatched.push(item);
}
}
return {
matched,
notMatched,
};
}
function buildGroupOptions(options: any[], inDomains: string[]) {
const grouped = groupByDomain(options, inDomains);
const groupOptions = [];
groupOptions.push({ value: '', disabled: true, label: '----已匹配----' });
if (grouped.matched.length === 0) {
options.push({ value: '', disabled: true, label: '没有可以匹配的域名' });
} else {
for (const matched of grouped.matched) {
groupOptions.push(matched);
}
}
if (grouped.notMatched.length > 0) {
groupOptions.push({ value: '', disabled: true, label: '----未匹配----' });
for (const notMatched of grouped.notMatched) {
groupOptions.push(notMatched);
}
}
return groupOptions;
}
export const optionsUtils = {
groupByDomain,
buildGroupOptions,
};