UNPKG

maildove

Version:

Send emails using Node.js only

47 lines 1.87 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.AddressUtils = void 0; const email_addresses_1 = __importDefault(require("email-addresses")); class AddressUtils { /*** * Get all the email addresses from the `addresses` string and convert * it to an array. * @param addresses String containing recipient addresses. * @returns {string[]} An array containing all the email addresses. */ getAddressesFromString(addresses) { const results = []; let addressesArray = []; if (!Array.isArray(addresses)) { addressesArray = addresses.split(','); } addressesArray.forEach((email) => { const parsedEmail = email_addresses_1.default.parseOneAddress(email); if (parsedEmail !== null && parsedEmail.type === 'mailbox') { results.push(parsedEmail.address); } }); return results; } /** * Get all the recipients grouped by domain name. * @param recipients String containing all the recipients. * @returns {Record<string, string[]>} Recipients grouped by domain name. */ groupRecipientsByDomain(recipients) { const recipientGroups = {}; for (const recipient of recipients) { const parsedEmail = email_addresses_1.default.parseOneAddress(recipient); if (parsedEmail !== null && parsedEmail.type === 'mailbox') { const host = parsedEmail.domain; (recipientGroups[host] || (recipientGroups[host] = [])).push(recipient); } } return recipientGroups; } } exports.AddressUtils = AddressUtils; //# sourceMappingURL=index.js.map