mirror of
https://github.com/node-red/node-red.git
synced 2025-03-01 10:36:34 +00:00
Compare commits
5 Commits
1.2.8
...
add-jsonat
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d22979659b | ||
|
|
bbe3ee701f | ||
|
|
b1c0d6b452 | ||
|
|
c6129b44a1 | ||
|
|
2a8290a4b7 |
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "node-red",
|
||||
"version": "1.2.5",
|
||||
"version": "1.3.0-beta.1",
|
||||
"description": "Low-code programming for event-driven applications",
|
||||
"homepage": "http://nodered.org",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@node-red/editor-api",
|
||||
"version": "1.2.5",
|
||||
"version": "1.3.0-beta.1",
|
||||
"license": "Apache-2.0",
|
||||
"main": "./lib/index.js",
|
||||
"repository": {
|
||||
@@ -16,8 +16,8 @@
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"@node-red/util": "1.2.5",
|
||||
"@node-red/editor-client": "1.2.5",
|
||||
"@node-red/util": "1.3.0-beta.1",
|
||||
"@node-red/editor-client": "1.3.0-beta.1",
|
||||
"bcryptjs": "2.4.3",
|
||||
"body-parser": "1.19.0",
|
||||
"clone": "2.1.2",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@node-red/editor-client",
|
||||
"version": "1.2.5",
|
||||
"version": "1.3.0-beta.1",
|
||||
"license": "Apache-2.0",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
||||
@@ -181,7 +181,7 @@
|
||||
$("#node-input-op1").typedInput({
|
||||
default: 'str',
|
||||
typeField: $("#node-input-op1type"),
|
||||
types:['flow','global','str','num','bool','json','bin','date','env',
|
||||
types:['flow','global','str','num','bool','json','bin','date','jsonata','env',
|
||||
optionPayload,
|
||||
optionNothing
|
||||
]
|
||||
@@ -189,7 +189,7 @@
|
||||
$("#node-input-op2").typedInput({
|
||||
default: 'str',
|
||||
typeField: $("#node-input-op2type"),
|
||||
types:['flow','global','str','num','bool','json','bin','date','env',
|
||||
types:['flow','global','str','num','bool','json','bin','date','jsonata','env',
|
||||
optionOriginalPayload,
|
||||
optionLatestPayload,
|
||||
optionNothing
|
||||
|
||||
@@ -75,6 +75,20 @@ module.exports = function(RED) {
|
||||
//catch(e) { this.op1 = this.op1; }
|
||||
//try { this.op2 = JSON.parse(this.op2); }
|
||||
//catch(e) { this.op2 = this.op2; }
|
||||
if (this.op1type === 'jsonata') {
|
||||
try {
|
||||
this.op1j = RED.util.prepareJSONataExpression(this.op1,this);
|
||||
} catch(e) {
|
||||
this.error(RED._("change.errors.invalid-expr",{error:e.message}));
|
||||
}
|
||||
}
|
||||
if (this.op2type === 'jsonata') {
|
||||
try {
|
||||
this.op2j = RED.util.prepareJSONataExpression(this.op2,this);
|
||||
} catch(e) {
|
||||
this.error(RED._("change.errors.invalid-expr",{error:e.message}));
|
||||
}
|
||||
}
|
||||
|
||||
var node = this;
|
||||
node.topics = {};
|
||||
@@ -137,10 +151,10 @@ module.exports = function(RED) {
|
||||
node.status(stat());
|
||||
}
|
||||
else {
|
||||
if (node.op2type === "payl") { npay[topic] = RED.util.cloneMessage(msg); }
|
||||
if (node.op2type !== "nul") { npay[topic] = RED.util.cloneMessage(msg); }
|
||||
if (((!node.topics[topic].tout) && (node.topics[topic].tout !== 0)) || (node.loop === true)) {
|
||||
promise = Promise.resolve();
|
||||
if (node.op2type === "pay") { node.topics[topic].m2 = RED.util.cloneMessage(msg.payload); }
|
||||
if (node.op2type !== "nul") { node.topics[topic].m2 = RED.util.cloneMessage(msg.payload); }
|
||||
else if (node.op2Templated) { node.topics[topic].m2 = mustache.render(node.op2,msg); }
|
||||
else if (node.op2type !== "nul") {
|
||||
promise = new Promise((resolve,reject) => {
|
||||
@@ -159,6 +173,18 @@ module.exports = function(RED) {
|
||||
promise = Promise.resolve();
|
||||
if (node.op1type === "pay") { }
|
||||
else if (node.op1Templated) { msg.payload = mustache.render(node.op1,msg); }
|
||||
else if (node.op1type === 'jsonata') {
|
||||
promise = new Promise((resolve,reject) => {
|
||||
RED.util.evaluateJSONataExpression(node.op1j,msg, (err, value) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
} else {
|
||||
msg.payload = value;
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
else if (node.op1type !== "nul") {
|
||||
promise = new Promise((resolve,reject) => {
|
||||
RED.util.evaluateNodeProperty(node.op1,node.op1type,node,msg,(err,value) => {
|
||||
@@ -188,10 +214,22 @@ module.exports = function(RED) {
|
||||
var msg2 = null;
|
||||
if (node.op2type !== "nul") {
|
||||
var promise = Promise.resolve();
|
||||
msg2 = RED.util.cloneMessage(msg);
|
||||
if (node.op2type === "flow" || node.op2type === "global") {
|
||||
msg2 = npay[topic];
|
||||
if (node.op2type === "flow" || node.op2type === "global" || node.op2type === "env") {
|
||||
promise = new Promise((resolve,reject) => {
|
||||
RED.util.evaluateNodeProperty(node.op2,node.op2type,node,msg,(err,value) => {
|
||||
RED.util.evaluateNodeProperty(node.op2,node.op2type,node,msg2,(err,value) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
} else {
|
||||
node.topics[topic].m2 = value;
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
else if (node.op2type === 'jsonata') {
|
||||
promise = new Promise((resolve,reject) => {
|
||||
RED.util.evaluateJSONataExpression(node.op2j,msg2,(err, value) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
} else {
|
||||
@@ -240,7 +278,7 @@ module.exports = function(RED) {
|
||||
var promise = Promise.resolve();
|
||||
|
||||
if (node.op2type !== "nul") {
|
||||
if (node.op2type === "flow" || node.op2type === "global") {
|
||||
if (node.op2type === "flow" || node.op2type === "global" || node.op2type === "env") {
|
||||
promise = new Promise((resolve,reject) => {
|
||||
RED.util.evaluateNodeProperty(node.op2,node.op2type,node,msg,(err,value) => {
|
||||
if (err) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@node-red/nodes",
|
||||
"version": "1.2.5",
|
||||
"version": "1.3.0-beta.1",
|
||||
"license": "Apache-2.0",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@node-red/registry",
|
||||
"version": "1.2.5",
|
||||
"version": "1.3.0-beta.1",
|
||||
"license": "Apache-2.0",
|
||||
"main": "./lib/index.js",
|
||||
"repository": {
|
||||
@@ -16,7 +16,7 @@
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"@node-red/util": "1.2.5",
|
||||
"@node-red/util": "1.3.0-beta.1",
|
||||
"semver": "6.3.0",
|
||||
"tar": "6.0.5",
|
||||
"uglify-js": "3.11.6",
|
||||
|
||||
@@ -102,7 +102,8 @@ function getLibraryEntry(type,path) {
|
||||
var files = [];
|
||||
fns.sort().filter(function(fn) {
|
||||
var fullPath = fspath.join(path,fn);
|
||||
var absoluteFullPath = fspath.join(root,fullPath);
|
||||
// we use fs.realpathSync to also resolve Symbolic Link
|
||||
var absoluteFullPath = fs.realpathSync(fspath.join(root,fullPath));
|
||||
if (fn[0] != ".") {
|
||||
var stats = fs.lstatSync(absoluteFullPath);
|
||||
if (stats.isDirectory()) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@node-red/runtime",
|
||||
"version": "1.2.5",
|
||||
"version": "1.3.0-beta.1",
|
||||
"license": "Apache-2.0",
|
||||
"main": "./lib/index.js",
|
||||
"repository": {
|
||||
@@ -16,8 +16,8 @@
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"@node-red/registry": "1.2.5",
|
||||
"@node-red/util": "1.2.5",
|
||||
"@node-red/registry": "1.3.0-beta.1",
|
||||
"@node-red/util": "1.3.0-beta.1",
|
||||
"async-mutex": "0.2.4",
|
||||
"clone": "2.1.2",
|
||||
"express": "4.17.1",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@node-red/util",
|
||||
"version": "1.2.5",
|
||||
"version": "1.3.0-beta.1",
|
||||
"license": "Apache-2.0",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
||||
10
packages/node_modules/node-red/package.json
vendored
10
packages/node_modules/node-red/package.json
vendored
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "node-red",
|
||||
"version": "1.2.5",
|
||||
"version": "1.3.0-beta.1",
|
||||
"description": "Low-code programming for event-driven applications",
|
||||
"homepage": "http://nodered.org",
|
||||
"license": "Apache-2.0",
|
||||
@@ -31,10 +31,10 @@
|
||||
"flow"
|
||||
],
|
||||
"dependencies": {
|
||||
"@node-red/editor-api": "1.2.5",
|
||||
"@node-red/runtime": "1.2.5",
|
||||
"@node-red/util": "1.2.5",
|
||||
"@node-red/nodes": "1.2.5",
|
||||
"@node-red/editor-api": "1.3.0-beta.1",
|
||||
"@node-red/runtime": "1.3.0-beta.1",
|
||||
"@node-red/util": "1.3.0-beta.1",
|
||||
"@node-red/nodes": "1.3.0-beta.1",
|
||||
"basic-auth": "2.0.1",
|
||||
"bcryptjs": "2.4.3",
|
||||
"express": "4.17.1",
|
||||
|
||||
Reference in New Issue
Block a user