@type-ddd/email
v0.1.0
Published
Library that provides TypeScript type definitions for handling Email in Domain-Driven Design contexts. It facilitates the validation and manipulation of emails.
Downloads
455
Maintainers
Readme
@type-ddd/email
The @type-ddd/email module provides a class Email for handling email addresses in TypeScript. It includes methods for validating email addresses, extracting parts of the email (such as nickname and domain), and creating instances of validated emails.
Installation
Install rich-domain
and @type-ddd/email
with your favorite package manager:
npm i rich-domain @type-ddd/email
#OR
yarn add rich-domain @type-ddd/email
Usage
import { Email } from '@type-ddd/email';
// Check if is valid value
const isValid = Email.isValid('[email protected]');
// true
// Initialize Email instance with a valid email address
const email = Email.init('[email protected]');
// OR
// Create Email instance from provided email address
const result = Email.create('[email protected]');
// Get parts of the email address
const nickname = email.nick();
const domain = email.domain();
Block some domains
If you want to block some specifics domains
import { Email } from '@type-ddd/email';
const list = ['hack.com'];
Reflect.set(Email, 'BLOCKED_DOMAINS', list);
const isValid = Email.isValid('[email protected]');
// false
const isValid = Email.isValid('[email protected]');
// true
Allowed some domains
If you want to allow only some specifics domains
import { Email } from '@type-ddd/email';
const list = ['my-company.com'];
Reflect.set(Email, 'VALID_DOMAINS', list);
const isValid = Email.isValid('[email protected]');
// true
const isValid = Email.isValid('[email protected]');
// false