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: "matched", 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: "unmatched", disabled: true, label: "----未匹配----" }); for (const notMatched of grouped.notMatched) { groupOptions.push(notMatched); } } return groupOptions; } export const optionsUtils = { //获取分组 groupByDomain, //构建分组后的选项列表,常用 buildGroupOptions, };