@babymotte/node-red-worterbuch
Version:
Nodes for Wörterbuch integration
36 lines (29 loc) • 872 B
JavaScript
const { setupWb } = require("../utils");
module.exports = function (RED) {
function WorterbuchSetNode(config) {
const node = this;
const wb = setupWb(node, RED, config, (status) =>
node.send([null, status])
);
node.on("input", (msg, send, done) =>
onInput(RED, config, node, msg, wb, done, send)
);
}
RED.nodes.registerType("worterbuch-set", WorterbuchSetNode);
};
function onInput(RED, config, node, msg, wb, done, send) {
let key =
RED.util.evaluateNodeProperty(config.key, config.keyType, node, msg) ||
msg.topic;
let val =
RED.util.evaluateNodeProperty(config.value, config.valueType, node, msg) ||
msg.payload;
wb.connection
.set(key, val)
.then(done)
.catch((err) => {
const newMsg = { ...msg, topic: key, payload: err.cause };
send([[newMsg], null]);
done();
});
}