Messaging API support in CSV node

This commit is contained in:
Kunihiko Toumura
2020-10-26 20:25:52 +09:00
parent 15a600c763
commit 8007bea7db
2 changed files with 51 additions and 9 deletions

View File

@@ -55,7 +55,7 @@ module.exports = function(RED) {
node.template = clean(node.template);
node.hdrSent = false;
this.on("input", function(msg) {
this.on("input", function(msg, send, done) {
if (msg.hasOwnProperty("reset")) {
node.hdrSent = false;
}
@@ -140,9 +140,10 @@ module.exports = function(RED) {
}
msg.payload = ou;
msg.columns = node.template.join(',');
if (msg.payload !== '') { node.send(msg); }
if (msg.payload !== '') { send(msg); }
done();
}
catch(e) { node.error(e,msg); }
catch(e) { done(e); }
}
else if (typeof msg.payload == "string") { // convert CSV string to object
try {
@@ -251,13 +252,13 @@ module.exports = function(RED) {
msg.payload = node.store;
msg.columns = node.template.filter(val => val).join(',');
delete msg.parts;
node.send(msg);
send(msg);
node.store = [];
}
}
else {
msg.columns = node.template.filter(val => val).join(',');
node.send(msg); // finally send the array
send(msg); // finally send the array
}
}
else {
@@ -281,19 +282,21 @@ module.exports = function(RED) {
newMessage.parts.count -= 1;
}
}
node.send(newMessage);
send(newMessage);
}
}
node.linecount = 0;
done();
}
catch(e) { node.error(e,msg); }
catch(e) { done(e); }
}
else { node.warn(RED._("csv.errors.csv_js")); }
else { node.warn(RED._("csv.errors.csv_js")); done(); }
}
else {
if (!msg.hasOwnProperty("reset")) {
node.send(msg); // If no payload and not reset - just pass it on.
send(msg); // If no payload and not reset - just pass it on.
}
done();
}
});
}