xible-nodepack-email
Advanced tools
Comparing version 0.1.1 to 0.2.0
@@ -1,69 +0,71 @@ | ||
module.exports = function(NODE) { | ||
'use strict'; | ||
let fromIn = NODE.getInputByName('from'); | ||
let toIn = NODE.getInputByName('to'); | ||
let ccIn = NODE.getInputByName('cc'); | ||
let bccIn = NODE.getInputByName('bcc'); | ||
let subjectIn = NODE.getInputByName('subject'); | ||
let textIn = NODE.getInputByName('text'); | ||
let htmlIn = NODE.getInputByName('html'); | ||
module.exports = (NODE) => { | ||
const fromIn = NODE.getInputByName('from'); | ||
const toIn = NODE.getInputByName('to'); | ||
const ccIn = NODE.getInputByName('cc'); | ||
const bccIn = NODE.getInputByName('bcc'); | ||
const subjectIn = NODE.getInputByName('subject'); | ||
const textIn = NODE.getInputByName('text'); | ||
const htmlIn = NODE.getInputByName('html'); | ||
let messageOut = NODE.getOutputByName('message'); | ||
const messageOut = NODE.getOutputByName('message'); | ||
function addrConnHandler(addrs, type, mail) { | ||
if (addrs.length) { | ||
mail[type] = addrs.join(','); | ||
} else if (NODE.data[type]) { | ||
mail[type] = NODE.data[type]; | ||
} | ||
} | ||
function addrConnHandler(addrs, type, mail) { | ||
if (addrs.length) { | ||
mail[type] = addrs.join(','); | ||
} else if (NODE.data[type]) { | ||
mail[type] = NODE.data[type]; | ||
} | ||
} | ||
//return reference glow | ||
messageOut.on('trigger', (conn, state, callback) => { | ||
// return reference glow | ||
messageOut.on('trigger', (conn, state, callback) => { | ||
const mail = {}; | ||
let mail = {}; | ||
Promise.all([ | ||
fromIn.getValues(state) | ||
.then(addrs => addrConnHandler(addrs, 'from', mail)), | ||
toIn.getValues(state) | ||
.then(addrs => addrConnHandler(addrs, 'to', mail)), | ||
ccIn.getValues(state) | ||
.then(addrs => addrConnHandler(addrs, 'cc', mail)), | ||
bccIn.getValues(state) | ||
.then(addrs => addrConnHandler(addrs, 'bcc', mail)), | ||
Promise.all([ | ||
subjectIn.getValues(state) | ||
.then((subjects) => { | ||
if (subjects.length) { | ||
mail.subject = subjects.join(''); | ||
} else if (NODE.data.subject) { | ||
mail.subject = NODE.data.subject; | ||
} | ||
}), | ||
fromIn.getValues(state).then((addrs) => addrConnHandler(addrs, 'from', mail)), | ||
toIn.getValues(state).then((addrs) => addrConnHandler(addrs, 'to', mail)), | ||
ccIn.getValues(state).then((addrs) => addrConnHandler(addrs, 'cc', mail)), | ||
bccIn.getValues(state).then((addrs) => addrConnHandler(addrs, 'bcc', mail)), | ||
textIn.getValues(state) | ||
.then((texts) => { | ||
if (texts.length) { | ||
mail.text = texts.join(''); | ||
} else if (NODE.data.text) { | ||
mail.text = NODE.data.text; | ||
} | ||
}), | ||
subjectIn.getValues(state).then((subjects) => { | ||
if (subjects.length) { | ||
mail.subject = subjects[0]; | ||
} else if (NODE.data.subject) { | ||
mail.subject = NODE.data.subject; | ||
} | ||
}), | ||
htmlIn.getValues(state) | ||
.then((htmls) => { | ||
if (htmls.length) { | ||
mail.html = htmls.join(''); | ||
} else if (NODE.data.html) { | ||
mail.html = NODE.data.html; | ||
} | ||
}) | ||
]) | ||
.then(() => { | ||
if (!mail.from || (!mail.to && !mail.cc && !mail.bcc) || !mail.subject) { | ||
return; | ||
} | ||
textIn.getValues(state).then((texts) => { | ||
if (texts.length) { | ||
mail.text = texts[0]; | ||
} else if (NODE.data.text) { | ||
mail.text = NODE.data.text; | ||
} | ||
}), | ||
htmlIn.getValues(state).then((htmls) => { | ||
if (htmls.length) { | ||
mail.html = htmls[0]; | ||
} else if (NODE.data.html) { | ||
mail.html = NODE.data.html; | ||
} | ||
}) | ||
]).then(() => { | ||
if (!mail.from || (!mail.to && !mail.cc && !mail.bcc) || !mail.subject) { | ||
return; | ||
} | ||
callback(mail); | ||
}); | ||
}); | ||
callback(mail); | ||
}); | ||
}); | ||
}; |
@@ -19,9 +19,12 @@ { | ||
"subject": { | ||
"type": "string" | ||
"type": "string", | ||
"maxConnectors": 1 | ||
}, | ||
"text": { | ||
"type": "string" | ||
"type": "string", | ||
"maxConnectors": 1 | ||
}, | ||
"html": { | ||
"type": "string" | ||
"type": "string", | ||
"maxConnectors": 1 | ||
} | ||
@@ -28,0 +31,0 @@ }, |
@@ -1,48 +0,41 @@ | ||
module.exports = function(NODE) { | ||
'use strict'; | ||
let triggerIn = NODE.getInputByName('trigger'); | ||
let serverIn = NODE.getInputByName('server'); | ||
let messageIn = NODE.getInputByName('message'); | ||
module.exports = (NODE) => { | ||
const triggerIn = NODE.getInputByName('trigger'); | ||
const serverIn = NODE.getInputByName('servers'); | ||
const messageIn = NODE.getInputByName('messages'); | ||
let doneOut = NODE.getOutputByName('done'); | ||
const doneOut = NODE.getOutputByName('done'); | ||
//return reference glow | ||
triggerIn.on('trigger', (conn, state) => { | ||
// return reference glow | ||
triggerIn.on('trigger', (conn, state) => { | ||
Promise.all([serverIn.getValues(state), messageIn.getValues(state)]) | ||
.then(([servers, messages]) => { | ||
const total = servers.length * messages.length; | ||
let sent = 0; | ||
Promise.all([serverIn.getValues(state), messageIn.getValues(state)]) | ||
.then(([servers, messages]) => { | ||
const total = servers.length * messages.length; | ||
let sent = 0; | ||
function onSent() { | ||
if (++sent === total) { | ||
doneOut.trigger(state); | ||
} | ||
} | ||
function onSent() { | ||
if(++sent === total) { | ||
doneOut.trigger(state); | ||
} | ||
} | ||
servers.forEach((server) => { | ||
messages.forEach((message) => { | ||
if (!message.from || (!message.to && !message.cc && !message.bcc) || !message.subject) { | ||
onSent(); | ||
return; | ||
} | ||
servers.forEach((server) => { | ||
messages.forEach((message) => { | ||
if (!message.from || (!message.to && !message.cc && !message.bcc) || !message.subject) { | ||
onSent(); | ||
return; | ||
} | ||
server.sendMail(message, (err) => { | ||
if (err) { | ||
NODE.error(err, state); | ||
return; | ||
} | ||
onSent(); | ||
}); | ||
}); | ||
}); | ||
}); | ||
}); | ||
server.sendMail(message, (err) => { | ||
if (err) { | ||
NODE.error(err, state); | ||
return; | ||
} | ||
onSent(); | ||
}); | ||
}); | ||
}); | ||
}); | ||
}); | ||
}; |
@@ -9,6 +9,6 @@ { | ||
}, | ||
"server": { | ||
"servers": { | ||
"type": "email.smtp.server" | ||
}, | ||
"message": { | ||
"messages": { | ||
"type": "email.message" | ||
@@ -15,0 +15,0 @@ } |
@@ -1,23 +0,21 @@ | ||
module.exports = function(NODE) { | ||
'use strict'; | ||
const nodemailer = require('nodemailer'); | ||
module.exports = (NODE) => { | ||
const nodemailer = require('nodemailer'); | ||
let serverOut = NODE.getOutputByName('server'); | ||
serverOut.on('trigger', (conn, state, callback) => { | ||
const serverOut = NODE.getOutputByName('server'); | ||
serverOut.on('trigger', (conn, state, callback) => { | ||
const smtpConfig = { | ||
host: NODE.data.host, | ||
port: NODE.data.port, | ||
secure: false, // use SSL/TLS | ||
// proxy: 'http://someaddress:someport/' | ||
auth: { | ||
user: NODE.data.username, | ||
pass: NODE.data.password | ||
} | ||
}; | ||
let smtpConfig = { | ||
host: NODE.data.host, | ||
port: NODE.data.port, | ||
secure: false, //use SSL/TLS | ||
//proxy: 'http://someaddress:someport/' | ||
auth: { | ||
user: NODE.data.username, | ||
pass: NODE.data.password | ||
} | ||
}; | ||
callback(nodemailer.createTransport(smtpConfig)); | ||
}); | ||
callback(nodemailer.createTransport(smtpConfig)); | ||
}); | ||
}; |
{ | ||
"name": "xible-nodepack-email", | ||
"version": "0.1.1", | ||
"version": "0.2.0", | ||
"description": "Set of email nodes for Xible", | ||
@@ -10,2 +10,5 @@ "license": "MIT", | ||
}, | ||
"scripts": { | ||
"prepublishOnly": "npm shrinkwrap --only=prod" | ||
}, | ||
"dependencies": { | ||
@@ -12,0 +15,0 @@ "nodemailer": "*" |
NPM Shrinkwrap
Supply chain riskPackage contains a shrinkwrap file. This may allow the package to bypass normal install procedures.
Found 1 instance in 1 package
6667
13
213
1