tldts.bench.ts 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import { fetchRemoteTextByLine } from './fetch-text-by-line';
  2. import { processLineFromReadline } from './process-line';
  3. import { bench, group, run } from 'mitata';
  4. import * as tldts from 'tldts';
  5. import * as tldtsExperimental from 'tldts-experimental';
  6. (async () => {
  7. const data = await processLineFromReadline(await fetchRemoteTextByLine('https://osint.digitalside.it/Threat-Intel/lists/latestdomains.txt'));
  8. const tldtsOpt: Parameters<typeof tldts.getDomain>[1] = {
  9. allowPrivateDomains: false,
  10. extractHostname: false,
  11. validateHostname: false,
  12. detectIp: false,
  13. mixedInputs: false
  14. };
  15. (['getDomain', 'getPublicSuffix', 'getSubdomain', 'parse'] as const).forEach(methodName => {
  16. group(methodName, () => {
  17. bench('tldts', () => {
  18. for (let i = 0, len = data.length; i < len; i++) {
  19. tldts[methodName](data[i], tldtsOpt);
  20. }
  21. });
  22. bench('tldts-experimental', () => {
  23. for (let i = 0, len = data.length; i < len; i++) {
  24. tldtsExperimental[methodName](data[i], tldtsOpt);
  25. }
  26. });
  27. });
  28. });
  29. run();
  30. })();