ZooTools / email-spell-checker

📮 An ultratiny (1.9 KB) and fast JavaScript email checker to reduce users typing a wrong email. Written in TypeScript. Enterprise-grade.
https://zootools.co/tools/email-spell-checker
MIT License
164 stars 11 forks source link

Most Microsoft domains not in popular domains #30

Open hashimaziz1 opened 1 year ago

hashimaziz1 commented 1 year ago

Firstly, thanks for taking up the mantle since the death of mailcheck.js and for building a package that is generally a pleasure to set up and use out of the box.

I had a look at the default config for the list of domains:

const DEFAULT_CONFIG = {
  domainThreshold: 2,
  domains: POPULAR_DOMAINS,

  secondLevelThreshold: 2,
  secondLevelDomains: ['yahoo', 'hotmail', 'mail', 'live', 'outlook'],

  topLevelThreshold: 2,
  topLevelDomains: POPULAR_TLDS,

  distanceFunction: sift3Distance,
};

...and I'm a bit confused as to why Outlook/Hotmail/Mail/Live and Yahoo domains are separate from the popular domains list, which both Gmail.com, Googlemail.com and even MSN.com are on. At first I was going to make a PR to fix since it seems so much like a mistake, given the market share of all these domains is about the same as Gmail in the Western world, and sometimes higher for certain demographics (people who are Gen X or older, people in the UK) based on my experiences running a general purpose web app in the UK and seeing these domains on an hourly basis.

However I'm also not entirely sure what the purpose of the secondLevelDomains is, since the name is confusing (since most of the domains in popular domains are also second-level domains), and its function doesn't seem to be documented. Does secondLevelDomains function as a sort of lower priority list of domains, so that if there's a conflict popularDomains takes precedence? If not, what exactly is the purpose of secondLevelDomains, and do I have permission to move these domains into popularDomains where they should really belong?