Obfuscate email
npm install obfuscate-mail
!Tests


!license
Email addresses should never been displayed by an api unless specifically requested by a recently authentified user.
This node.js library gives the options to obfuscate email addresses will leaving them more or less identifiable.
``sh`
npm install obfuscate-mail
`sh`
yarn add obfuscate-mail
`js`
const obfuscate = require('obfuscate-mail');
`js`
import obfuscate from 'obfuscate-mail';
`js`
obfuscate('example.example@example.com', {
// asterisksLength: 6,
// minimumNameObfuscationLength: 4,
// visibleCharactersStartLength: 3,
// visibleCharactersMiddleLength: 2,
// visibleCharactersEndLength: 2,
// showDomainName: false,
// showDomainExtension: true,
// invalidEmailValue: '*@.',
});
> => exa.ele@*.com
- asterisksLength - default 6minimumNameObfuscationLength
- - default 4visibleCharactersStartLength
- - default 3visibleCharactersMiddleLength
- - default 2visibleCharactersEndLength
- - default 2showDomainName
- - default falseshowDomainExtension
- - default trueinvalidEmailValue
- - default *@.
`sh`
curl -o obfuscate.wasm https://raw.githubusercontent.com/rawpixel-vincent/obfuscate-mail/main/dist/bundle.wasm
`sh`
echo '{ "email": "example.example@example.com", "options": {} }' | wasmtime obfuscate.wasm
> => "exa.ele@*.com"%
`js`
const result = obfuscate('example@example.com');
expect(result).equal('exa@*.com');
`js`
const result = obfuscate('example.example@example.com');
expect(result).equal('exa.ele@*.com');
`js`
const result = obfuscate('e@example.com');
expect(result).equal('@*.com');
`js`
const result = obfuscate('exa@example.com');
expect(result).equal('@*.com');
`js`
const result = obfuscate('examp@example.com');
expect(result).equal('e@*.com');
`js`
const result = obfuscate('example@example.com', {
showDomainName: true,
});
expect(result).equal('exa@example.com');
`js`
const result = obfuscate('example.company+test@example.com', {
asterisksLength: 12,
});
expect(result).equal('exampst@*.com');
`js`
const result = obfuscate('example@example.com', {
showDomainName: true,
showDomainExtension: false,
});
expect(result).equal('exa@example.*');
`js`
const result = obfuscate('company.name@test.com', {
asterisksLength: 8,
visibleCharactersStartLength: 2,
visibleCharactersEndLength: 3,
showDomainName: false,
});
expect(result).equal('co*nyame@**.com');
`js`
const result = obfuscate('company.name@test.com', {
visibleCharactersStartLength: 4,
visibleCharactersEndLength: 1,
minimumNameObfuscationLength: 6,
});
expect(result).equal('comp.e@*.com');
`js`
const result = obfuscate('company.name@test.com', {
visibleCharactersStartLength: 3,
visibleCharactersEndLength: 2,
minimumNameObfuscationLength: 6,
});
expect(result).equal('comyme@*.com');
`js`
const result = obfuscate('company.example@test.com', {
visibleCharactersStartLength: 2,
visibleCharactersMiddleLength: 3,
visibleCharactersEndLength: 2,
minimumNameObfuscationLength: 6,
});
expect(result).equal('coy.ele@*.com');
`js`
const result = obfuscate('company.name@test.com', {
visibleCharactersStartLength: 3,
visibleCharactersEndLength: 2,
minimumNameObfuscationLength: 10,
});
expect(result).equal('co@*.com');
`js`
const result = obfuscate('company.name@test.com', {
visibleCharactersStartLength: 0,
visibleCharactersEndLength: 4,
});
expect(result).equal('paname@*.com');
`js`
const result = obfuscate('email.without@domain-extension');
expect(result).equal('emawiut@.');
`js`
const result = obfuscate('abcdefgh.ijklmno@domain.com', {
visibleCharactersStartLength: 4,
visibleCharactersMiddleLength: 4,
visibleCharactersEndLength: 4,
});
expect(result).equal('abcdgh.ilmno@*.com');
`js`
const result = obfuscate('invalid email');
expect(result).equal('*@.');
`js``
const result = obfuscate(null, { invalidEmailValue: 'invalid email' });
expect(result).equal('invalid email');