UNPKG

@cull/pore

Version:

An email data analysis library.

32 lines (28 loc) 771 B
import psl from 'psl'; import { Address } from '@cull/imap'; /** * The value and isolated components of a singular from/to header field value (i.e. email address). * * e.g. `Jaclyn <jaclyn@mx.cull.email>` would be represented as: * ``` * { * name: "Jaclyn", * address: "jaclyn@mx.cull.email" * domain: "cull.email" * } * ``` */ export default class Identity { name?: string; address: string; domain: string; constructor(address: Address) { this.name = address.name; this.address = `${address.mailbox}@${address.host}`; let parsed = psl.parse(address.host) as psl.ParsedDomain; this.domain = parsed.domain; } toString(): string { return this.name ? `${this.name} <${this.address}>` : `<${this.address}>`; } }