normalize-emails
v0.1.2
Published
This package allows you to normalize a list of misspelled emails.
Downloads
3
Readme
This package allows you to normalize a list of misspelled emails.
Instalation
Via npm:
npm i -s normalize-emails
Or via yarn:
yarn add normalize-emails
Usage
The module exports a default function with the following signature:
normalizeEmails(emails [, clearCache = false, config])
import normalizeEmails from 'normalize-emails'
const misspelled = [
'[email protected]',
'[email protected]',
'[email protected]',
'[email protected]',
]
const normalized = normalizeEmails(misspelled)
console.log(normalized)
The result would be an array of objects with the keys original
and fixed
:
[
{
original: '[email protected]',
fixed: '[email protected]'
},
{
original: '[email protected]',
fixed: null
},
{
original: '[email protected]',
fixed: '[email protected]'
},
{
original: '[email protected]',
fixed: '[email protected]'
},
]
Cache
Everytime a domain (top or second level) is normalized, it's result is kept in a memory cache.
The cache persists between multiple calls, but can be explicitly cleaned by passing a second argument:
const normalized = normalizeEmails(misspelled, true)
Configuration
The default configuration is specially tuned to work with the majority of the brazilian email domains.
To override the default configuration, just pass a config object as third argument:
const config = {
threshold: 0.6,
topLevelDomains: ['com', 'com.br', 'co.uk'],
secondLevelDomains: ['gmail', 'icloud'],
// specially used for brazilian domains, such as .sp.org.br
states: ['sp', 'rj', 'se'],
// include here domains that should not be normalized
bypass: ['amil.com.br'], // don't want it to be normalized as gmail.com
// include here domains that should be double checked
// and get it's top level domains converted to valid
// ones (i.e: 'gmail.com.br' -> 'gmail.com')
fullDomain: ['gmail.com'],
}
const normalized = normalizeEmails(misspelled, false, config)