A simple Node.js package to normalize email addresses by removing dots, stripping plus signs, and handling domain renaming.
- Convert to lowercase
- Removes dots from the email identifier for specific domains
- Strips plus signs and the following tags
- Renames domains (e.g.,
googlemail.com
togmail.com
) - Supports common email providers like Gmail, Googlemail, Hotmail, Live, and Outlook
- No dependencies
- Lightweight and runtime agnostic
- Typescript, ES6, and CommonJS support
You can install the package using pnpm
, npm
, or yarn
:
pnpm add email-normalizer
# or
npm install email-normalizer
# or
yarn add email-normalizer
Here's how you can use the email-normalizer
package:
import { normalizeEmail } from 'email-normalizer';
const email = 'User.Name+tag@gmail.com';
const normalizedEmail = normalizeEmail({ email });
console.log(normalizedEmail); // Output: username@gmail.com
Note: An error will be thrown if the provided email address is invalid.
Normalizes the provided email address based on the configured rules for various domains.
Parameters:
email
: The email address to be normalized.
Returns:
- A normalized email address as a string.
The normalization rules are predefined for the following domains:
gmail.com
: Removes dots, strips plus sign and tags.googlemail.com
: Removes dots, strips plus sign and tags, renames domain togmail.com
.hotmail.com
: Strips plus sign and tags.live.com
: Removes dots, strips plus sign and tags.outlook.com
: Strips plus sign and tags.
The package.json includes several useful scripts:
build
: Builds the package usingunbuild
.lint
: Lints the codebase usingeslint
.lint:fix
: Fixes linting errors.test
: Runs all tests.test:unit
: Runs unit tests usingvitest
.test:unit:watch
: Runs unit tests in watch mode.
To contribute to this project, clone the repository and install the dependencies:
git clone https://github.com/CorentinTh/email-normalizer.git
cd email-normalizer
pnpm install
You can then build, lint, and test the project using the provided scripts.
This project is licensed under the MIT License. See the LICENSE file for details.
Support this project through GitHub Sponsors.
Developed by Corentin Th. You can reach out via email.