UNPKG

sendgrid-mail

Version:

The easiest way to send mail with sendgrid.

42 lines (32 loc) 1.03 kB
const debug = require('debug')('sendgrid-mail:util') const _ = require('lodash') const parseList = commaSeparatedList => { const trim = s => s.trim() const nonEmpty = val => !_.isEmpty(val) return (commaSeparatedList || '').split(',').map(trim).filter(nonEmpty).map(parseEmail) } // supported formats are 'user@domain.tld' and 'Name <user@domain.tld>' const parseEmail = emailAddress => { if (!emailAddress || emailAddress.length < 1) { debug(`${emailAddress} --> null`) return null } const emailRegExp = /(?:"?([^"]*)"?\s)?(?:<?(.+@[^>]+)>?)/ const matchData = emailAddress.match(emailRegExp) if (!matchData) { debug(`${emailAddress} --> null`) return null } const retVal = { email: matchData[2] } if (matchData[1]) { retVal.name = matchData[1] } debug(`${emailAddress} --> ${inspect(retVal)}`) return retVal } const inspect = obj => require('util').inspect(obj, { depth: null }) module.exports = { parseList: parseList, parseEmail: parseEmail, inspect: inspect }