email-masker
v1.0.1
Published
Simple utility to mask email addresses for privacy
Maintainers
Readme
mask-email
A simple, lightweight utility to mask email addresses for privacy. Zero dependencies.
Installation
npm install mask-emailUsage
const maskEmail = require('mask-email');
// Basic usage
maskEmail('[email protected]'); // 'j******@gmail.com'
maskEmail('[email protected]'); // 'j***@example.org'
// Custom masking character
maskEmail('[email protected]', { maskChar: '#' }); // 'u###@domain.com'
// Show more characters at start
maskEmail('[email protected]', { unmaskedStart: 3 }); // 'joh****@gmail.com'
// Show characters at end of username
maskEmail('[email protected]', {
unmaskedStart: 2,
unmaskedEnd: 2
}); // 'jo***[email protected]'
// Mask domain too
maskEmail('[email protected]', { maskDomain: true }); // 'u***@g******.com'API
maskEmail(email, options?)
Parameters
email(string): The email address to maskoptions(object, optional): Masking configurationmaskChar(string): Character to use for masking (default:'*')unmaskedStart(number): Number of characters to show at start of username (default:1)unmaskedEnd(number): Number of characters to show at end of username (default:0)maskDomain(boolean): Whether to mask the domain name (default:false)
Returns
- (string): The masked email address
Throws
- Error: If email is not a string or has invalid format
Examples
// Different masking styles
maskEmail('[email protected]'); // 'h****@world.com'
maskEmail('[email protected]'); // '[email protected]' (too short to mask much)
maskEmail('[email protected]', { unmaskedStart: 4 }); // 'very*********@company.com'
// Custom characters
maskEmail('[email protected]', { maskChar: '•' }); // 't•••@example.com'
maskEmail('[email protected]', { maskChar: 'X' }); // '[email protected]'
// Privacy modes
maskEmail('[email protected]', {
maskDomain: true,
maskChar: '#'
}); // 's########@p######.org'License
MIT
Contributing
Pull requests welcome! Please ensure tests pass.
Running Tests
npm testDevelopment
To contribute to this project:
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Ensure all tests pass
- Submit a pull request
Test File Structure
The project includes comprehensive tests in test.js. You can run them with:
// Example test structure
const maskEmail = require('./index.js');
test('Basic email masking', () => {
assertEqual(maskEmail('[email protected]'), 'j***@example.com');
});