UNPKG

@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
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;