normalize-emails

0.1.2 • Public • Published

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 = [
  'jhon@gmail.con',
  'james@yahoo.com',
  'mario@gmal.com',
  'peter@hotmil.com',
]

const normalized = normalizeEmails(misspelled)

console.log(normalized)

The result would be an array of objects with the keys original and fixed:

[
  {
    original: 'jhon@gmail.con',
    fixed: 'jhon@gmail.com'
  },
  {
    original: 'james@yahoo.com',
    fixed: null
  },
  {
    original: 'mario@gmal.com',
    fixed: 'mario@gmail.com'
  },
  {
    original: 'peter@hotmil.com',
    fixed: 'peter@hotmil.com'
  },
]

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)

Dependents (0)

Package Sidebar

Install

npm i normalize-emails

Weekly Downloads

1

Version

0.1.2

License

none

Last publish

Collaborators

  • italo.ammo