Compare commits

...

7 Commits

Author SHA1 Message Date
Nick O'Leary
ba5c8d823d Fix library icon handling within library browser component
Closes #5004
2025-01-17 17:06:17 +00:00
Nick O'Leary
6b043d81a8 Avoid exceeding call stack when draining message group in Switch
Fixes #5013
2025-01-17 16:52:27 +00:00
Nick O'Leary
e2981f2970 Allow env var access to context 2025-01-17 16:45:44 +00:00
Nick O'Leary
804551000a Merge pull request #5015 from node-red/fix-nodemon
Fix grunt dev via better ndoemon ignore rules
2025-01-15 14:43:08 +00:00
Nick O'Leary
254b6a1e23 Fix grunt dev via better ndoemon ignore rules 2025-01-15 10:32:10 +00:00
Nick O'Leary
3838e4e605 Merge pull request #5007 from natcl/patch-7
Fix typo in CHANGELOG (4.0.7-->4.0.8)
2025-01-13 16:44:29 +00:00
Nathanaël Lécaudé
3da22882e9 Fix typo in CHANGELOG (4.0.7-->4.0.8) 2025-01-07 11:30:35 -05:00
8 changed files with 69 additions and 10 deletions

View File

@@ -1,4 +0,0 @@
/Gruntfile.js
/.git/*
*.backup
/public/*

View File

@@ -1,4 +1,4 @@
#### 4.0.7: Maintenance Release
#### 4.0.8: Maintenance Release
Editor

16
nodemon.json Normal file
View File

@@ -0,0 +1,16 @@
{
"ignoreRoot": [
".git",
".nyc_output",
".sass-cache",
"bower-components",
"coverage"
],
"ignore": [
"/Gruntfile.js",
"/.git/*",
"*.backup",
"/public/*"
]
}

View File

@@ -245,10 +245,15 @@ RED.library = (function() {
if (lib.types && lib.types.indexOf(options.url) === -1) {
return;
}
let icon = 'fa fa-hdd-o';
if (lib.icon) {
const fullIcon = RED.utils.separateIconPath(lib.icon);
icon = (fullIcon.module==="font-awesome"?"fa ":"")+fullIcon.file;
}
listing.push({
library: lib.id,
type: options.url,
icon: lib.icon || 'fa fa-hdd-o',
icon,
label: RED._(lib.label||lib.id),
path: "",
expanded: true,
@@ -303,10 +308,15 @@ RED.library = (function() {
if (lib.types && lib.types.indexOf(options.url) === -1) {
return;
}
let icon = 'fa fa-hdd-o';
if (lib.icon) {
const fullIcon = RED.utils.separateIconPath(lib.icon);
icon = (fullIcon.module==="font-awesome"?"fa ":"")+fullIcon.file;
}
listing.push({
library: lib.id,
type: options.url,
icon: lib.icon || 'fa fa-hdd-o',
icon,
label: RED._(lib.label||lib.id),
path: "",
expanded: true,

View File

@@ -352,7 +352,9 @@ module.exports = function(RED) {
if (msgs.length === 0) {
done()
} else {
drainMessageGroup(msgs,count,done);
setImmediate(() => {
drainMessageGroup(msgs,count,done);
})
}
}
})
@@ -505,7 +507,9 @@ module.exports = function(RED) {
if (err) {
node.error(err,nextMsg);
}
processMessageQueue()
setImmediate(() => {
processMessageQueue()
})
});
}

View File

@@ -719,6 +719,14 @@ class Flow {
});
}
getContext(scope) {
if (scope === 'flow') {
return this.context
} else if (scope === 'global') {
return context.get('global')
}
}
dump() {
console.log("==================")
console.log(this.TYPE, this.id);

View File

@@ -49,6 +49,14 @@ class Group {
}
return this.parent.getSetting(key);
}
error(msg) {
this.parent.error(msg);
}
getContext(scope) {
return this.parent.getContext(scope);
}
}
module.exports = {

View File

@@ -100,7 +100,24 @@ async function evaluateEnvProperties(flow, env, credentials) {
}
} else if (type ==='jsonata') {
pendingEvaluations.push(new Promise((resolve, _) => {
redUtil.evaluateNodeProperty(value, 'jsonata', {_flow: flow}, null, (err, result) => {
redUtil.evaluateNodeProperty(value, 'jsonata',{
// Fake a node object to provide access to _flow and context
_flow: flow,
context: () => {
return {
flow: {
get: (value, store, callback) => {
return flow.getContext('flow').get(value, store, callback)
}
},
global: {
get: (value, store, callback) => {
return flow.getContext('global').get(value, store, callback)
}
}
}
}
}, null, (err, result) => {
if (!err) {
if (typeof result === 'object') {
result = { value: result, __clone__: true}