@type-ddd/email
Version:
Library that provides TypeScript type definitions for handling Email in Domain-Driven Design contexts. It facilitates the validation and manipulation of emails.
33 lines (32 loc) • 1.12 kB
TypeScript
import { Result, ValueObject } from 'rich-domain';
export declare class Email extends ValueObject<string> {
protected static readonly BLOCKED_DOMAINS: Array<string>;
protected static readonly VALID_DOMAINS: Array<string>;
protected static readonly MESSAGE: string;
private constructor();
value(): string;
nick(): string;
domain(): string;
static isValid(value: string): boolean;
/**
* @description validate email value
* @param email string
* @returns true if email value is valid and returns false if not.
*
* @requires email not greater than 256 char.
* @requires contain symbol @
* @requires contain [domain].[org].[optional country]
* @requires contain [nick letters] with [hifen or numbers]
* @requires starts [a-z]
* @requires ends [a-z]
*/
static isValidProps(email: string): boolean;
/**
*
* @param value value as string
* @returns instance of Email or throw an error
*/
static init(value: string): Email;
static create(value: string): Result<Email | null>;
}
export default Email;