changed rules property to be stored as a JSON string

This commit is contained in:
Niko Vujić
2025-12-31 10:29:00 +01:00
parent e07341fa05
commit 7c9c1ddf3a
4 changed files with 52 additions and 27 deletions

View File

@@ -65,7 +65,15 @@ module.exports = function (RED) {
const node = this;
node.action = config.action || "subscribe";
node.rules = Array.isArray(config.rules) ? config.rules : [];
let storedRules = config.rules;
if (typeof storedRules === "string") {
try {
storedRules = JSON.parse(storedRules);
} catch (e) {
storedRules = [];
}
}
node.rules = Array.isArray(storedRules) ? storedRules : [];
node.transport = config.transport || "TCP";
node.connectionConfig = RED.nodes.getNode(config.connection);
@@ -78,7 +86,17 @@ module.exports = function (RED) {
done = done || function () {};
const action = normaliseAction(msg.action || node.action);
const rules = Array.isArray(msg.rules) ? msg.rules : node.rules;
let rules = msg.rules || node.rules;
if (typeof rules === "string") {
try {
rules = JSON.parse(rules);
} catch (e) {
rules = [];
}
}
if (!Array.isArray(rules)) {
rules = [];
}
const transport =
typeof msg.transport === "string" && msg.transport.trim().length