maildove
Version:
Send emails using Node.js only
47 lines • 1.87 kB
JavaScript
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
;