email-normalizer
v1.0.0
Published
Normalize email addresses
Downloads
1,654
Readme
Email Normalizer
A simple Node.js package to normalize email addresses by removing dots, stripping plus signs, and handling domain renaming.
Features
- 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
Installation
You can install the package using pnpm
, npm
, or yarn
:
pnpm add email-normalizer
# or
npm install email-normalizer
# or
yarn add email-normalizer
Usage
Here's how you can use the email-normalizer
package:
import { normalizeEmail } from 'email-normalizer';
const email = '[email protected]';
const normalizedEmail = normalizeEmail({ email });
console.log(normalizedEmail); // Output: [email protected]
Note: An error will be thrown if the provided email address is invalid.
API
normalizeEmail({ email: string }): string
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.
Configuration
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.
Scripts
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.
Development
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.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Funding
Support this project through GitHub Sponsors.
Author
Developed by Corentin Th. You can reach out via email.