mirror of
https://github.com/SukkaW/Surge.git
synced 2025-12-12 01:00:34 +08:00
38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
import { fetchRemoteTextByLine } from './fetch-text-by-line';
|
|
import { processLineFromReadline } from './process-line';
|
|
|
|
import { bench, group, run } from 'mitata';
|
|
|
|
import * as tldts from 'tldts';
|
|
import * as tldtsExperimental from 'tldts-experimental';
|
|
|
|
(async () => {
|
|
const data = await processLineFromReadline(await fetchRemoteTextByLine('https://osint.digitalside.it/Threat-Intel/lists/latestdomains.txt'));
|
|
|
|
const tldtsOpt: Parameters<typeof tldts.getDomain>[1] = {
|
|
allowPrivateDomains: false,
|
|
extractHostname: false,
|
|
validateHostname: false,
|
|
detectIp: false,
|
|
mixedInputs: false
|
|
};
|
|
|
|
(['getDomain', 'getPublicSuffix', 'getSubdomain', 'parse'] as const).forEach(methodName => {
|
|
group(methodName, () => {
|
|
bench('tldts', () => {
|
|
for (let i = 0, len = data.length; i < len; i++) {
|
|
tldts[methodName](data[i], tldtsOpt);
|
|
}
|
|
});
|
|
|
|
bench('tldts-experimental', () => {
|
|
for (let i = 0, len = data.length; i < len; i++) {
|
|
tldtsExperimental[methodName](data[i], tldtsOpt);
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
run();
|
|
})();
|