Perf/Refactor: processHosts now returns string[]

This commit is contained in:
SukkaW
2024-05-26 18:22:44 +08:00
parent aa3cb9e586
commit 6b0151be29
3 changed files with 8 additions and 11 deletions

View File

@@ -21,6 +21,5 @@ export const normalizeDomain = (domain: string) => {
h = h.slice(sliceStart, sliceEnd);
}
if (h) return h;
return null;
return h || null;
};

View File

@@ -47,7 +47,7 @@ export function processDomainLists(span: Span, domainListsUrl: string, includeAl
));
}
const hostsLineCb = (l: string, set: Set<string>, 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<string>, 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<string>();
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
}
));
}