nodemailer-mailjet-transport
Version:
Mailjet transport for Nodemailer
64 lines (55 loc) • 1.25 kB
JavaScript
;
const util = require('util');
const addressparser = require('addressparser');
function addressFormatter(addr) {
if (addr.address && addr.name) {
return util.format('"%s" <%s>', addr.name, addr.address);
}
return addr.address;
}
function addressParser(addrs) {
if (!Array.isArray(addrs)) {
addrs = [addrs];
}
return addrs
.map((addr) => {
return typeof addr === 'object'
? [addr]
: addressparser(addr);
})
.reduce((acc, cur) => {
return acc.concat(cur);
}, []);
}
function headersParser(headers) {
if (!Array.isArray(headers)) {
headers = Object.keys(headers).map((name) => {
return Array.isArray(headers[name])
? headers[name].map(function (x) {
return {
key: name,
value: x
};
})
: {
key: name,
value: headers[name]
};
});
}
return headers
.reduce(function (acc, x) {
return acc.concat(x);
}, [])
.map((header) => {
return {
Name: header.key,
Value: header.value
};
});
}
module.exports = {
addressFormatter: addressFormatter,
addressParser: addressParser,
headersParser: headersParser
};