From 35c0917c4b204ebc624dc2f1df4631dbb49580b7 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Sat, 13 Dec 2025 18:45:06 +0000 Subject: [PATCH 1/4] Let switch node regex mode optionally return matches and add tests --- .../nodes/core/function/10-switch.html | 8 +++++-- .../nodes/core/function/10-switch.js | 24 ++++++++++++++++--- .../nodes/locales/en-US/messages.json | 1 + test/nodes/core/function/10-switch_spec.js | 13 ++++++++++ 4 files changed, 41 insertions(+), 5 deletions(-) diff --git a/packages/node_modules/@node-red/nodes/core/function/10-switch.html b/packages/node_modules/@node-red/nodes/core/function/10-switch.html index d83a8820a..77063f868 100644 --- a/packages/node_modules/@node-red/nodes/core/function/10-switch.html +++ b/packages/node_modules/@node-red/nodes/core/function/10-switch.html @@ -112,6 +112,7 @@ } if (type === "regex") { r.case = rule.find(".node-input-rule-case").prop("checked"); + r.match = rule.find(".node-input-rule-match").prop("checked"); } } return r; @@ -230,12 +231,12 @@ oneditprepare: function() { var node = this; - $("#node-input-property").typedInput({default:this.propertyType||'msg',types:['msg','flow','global','jsonata','env']}); var outputCount = $("#node-input-outputs").val("{}"); var andLabel = this._("switch.and"); var caseLabel = this._("switch.ignorecase"); + var matchLabel = this._("switch.returnmatches"); $("#node-input-rule-container").css('min-height','150px').css('min-width','450px').editableList({ addItem: function(container,i,opt) { @@ -276,7 +277,7 @@ }); var inputRows = $('
',{style:"flex-grow:1"}).appendTo(container); var row = $('
',{style:"display: flex;"}).appendTo(inputRows); - var row2 = $('
',{style:"display: flex; padding-top: 5px; padding-left: 175px;"}).appendTo(inputRows); + var row2 = $('
',{style:"display: flex; padding-top: 5px; padding-left: 155px;"}).appendTo(inputRows); var row3 = $('
',{style:"display: flex; padding-top: 5px; align-items: center"}).appendTo(inputRows); var row4 = $('
',{style:"visibility: hidden; height: 0px;"}).appendTo(inputRows); @@ -316,6 +317,8 @@ var caseSensitive = $('',{id:"node-input-rule-case-"+i,class:"node-input-rule-case",type:"checkbox",style:"width:auto;vertical-align:top"}).appendTo(row2); $('