diff --git a/Build/build-reject-domainset.ts b/Build/build-reject-domainset.ts index 4ba911c1..a5c9ad00 100644 --- a/Build/build-reject-domainset.ts +++ b/Build/build-reject-domainset.ts @@ -36,7 +36,7 @@ export const buildRejectDomainSet = task(import.meta.path, async (span) => { let shouldStop = false; await Promise.all([ // Parse from remote hosts & domain lists - ...HOSTS.map(entry => processHosts(childSpan, entry[0], entry[1], entry[2], entry[3]).then(hosts => SetAdd(domainSets, hosts))), + ...HOSTS.map(entry => processHosts(childSpan, entry[0], entry[1], entry[2], entry[3]).then(setAddFromArrayCurried(domainSets))), ...DOMAIN_LISTS.map(entry => processDomainLists(childSpan, entry[0], entry[1], entry[2]).then(setAddFromArrayCurried(domainSets))), diff --git a/Build/lib/normalize-domain.ts b/Build/lib/normalize-domain.ts index 63e17375..bb27083c 100644 --- a/Build/lib/normalize-domain.ts +++ b/Build/lib/normalize-domain.ts @@ -21,6 +21,5 @@ export const normalizeDomain = (domain: string) => { h = h.slice(sliceStart, sliceEnd); } - if (h) return h; - return null; + return h || null; }; diff --git a/Build/lib/parse-filter.ts b/Build/lib/parse-filter.ts index 0591f53f..3c6e52fb 100644 --- a/Build/lib/parse-filter.ts +++ b/Build/lib/parse-filter.ts @@ -47,7 +47,7 @@ export function processDomainLists(span: Span, domainListsUrl: string, includeAl )); } -const hostsLineCb = (l: string, set: Set, includeAllSubDomain: boolean, meta: string) => { +const hostsLineCb = (l: string, set: string[], includeAllSubDomain: boolean, meta: string) => { const line = processLine(l); if (!line) { return; @@ -66,15 +66,15 @@ const hostsLineCb = (l: string, set: Set, includeAllSubDomain: boolean, foundDebugDomain = true; } - set.add(includeAllSubDomain ? `.${domain}` : domain); + set.push(includeAllSubDomain ? `.${domain}` : domain); }; export function processHosts(span: Span, hostsUrl: string, mirrors: string[] | null, includeAllSubDomain = false, ttl: number | null = null) { - const domainSets = new Set(); - return span.traceChild(`processhosts: ${hostsUrl}`).traceAsyncFn((childSpan) => fsFetchCache.apply( hostsUrl, async () => { + const domainSets: string[] = []; + if (mirrors == null || mirrors.length === 0) { for await (const l of await fetchRemoteTextByLine(hostsUrl)) { hostsLineCb(l, domainSets, includeAllSubDomain, hostsUrl); @@ -91,15 +91,13 @@ export function processHosts(span: Span, hostsUrl: string, mirrors: string[] | n }); } - console.log(picocolors.gray('[process hosts]'), picocolors.gray(hostsUrl), picocolors.gray(domainSets.size)); - return domainSets; }, { ttl, temporaryBypass, - serializer: serializeSet, - deserializer: deserializeSet + serializer: serializeArray, + deserializer: deserializeArray } )); }