@amiearth/mask-email
v1.0.3
Published
A lightweight TypeScript library for masking email addresses to protect user privacy
Maintainers
Readme
@amiearth/mask-email
A lightweight, zero-dependency TypeScript library for masking email addresses to protect user privacy. Perfect for displaying emails in logs, UI components, or any scenario where you need to hide sensitive information.
Features
- 🎯 Simple API - Easy to use with minimal configuration
- 🔒 Privacy-focused - Protect user email addresses from exposure
- 📦 Zero dependencies - Lightweight and fast
- 🎨 Customizable - Configure mask character and visible characters
- 📝 TypeScript - Full TypeScript support with type definitions
- ✅ Well tested - Comprehensive test coverage
Installation
npm install @amiearth/mask-emailyarn add @amiearth/mask-emailpnpm add @amiearth/mask-emailUsage
Basic Usage
import { maskEmail } from '@amiearth/mask-email';
// Default masking (shows first 2 characters)
maskEmail('[email protected]');
// Returns: 'jo*******@gmail.com'Custom Options
import { maskEmail } from '@amiearth/mask-email';
// Custom mask character
maskEmail('[email protected]', { maskChar: '#' });
// Returns: 'jo#######@gmail.com'
// Show more characters
maskEmail('[email protected]', { visibleStart: 3 });
// Returns: 'joh******@gmail.com'
// Combine options
maskEmail('[email protected]', { maskChar: '•', visibleStart: 4 });
// Returns: 'john•••••@gmail.com'API
maskEmail(email: string, options?: MaskOptions): string
Masks an email address by hiding part of the local part (before @) while keeping the domain visible.
Parameters
email(string, required) - The email address to maskoptions(MaskOptions, optional) - Configuration options
Options
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| maskChar | string | '*' | Character used for masking |
| visibleStart | number | 2 | Number of characters to show at the start of the local part |
Returns
string- The masked email address
Examples
// Standard email
maskEmail('[email protected]');
// 'al****@example.com'
// Short email (shows only first character)
maskEmail('[email protected]');
// 'a*@test.com'
// Invalid email (returns as-is)
maskEmail('notanemail');
// 'notanemail'
maskEmail('');
// ''Use Cases
- Logging: Mask emails in application logs
- UI Display: Show partial emails in user interfaces
- Error Messages: Display emails in error messages without exposing full addresses
- Debugging: Protect user privacy during development
License
ISC
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
