mirror of
				https://github.com/node-red/node-red.git
				synced 2025-03-01 10:36:34 +00:00 
			
		
		
		
	Fix jsonata err reporting in sort node
This commit is contained in:
		@@ -926,8 +926,8 @@
 | 
			
		||||
        "ascending" : "ascending",
 | 
			
		||||
        "descending" : "descending",
 | 
			
		||||
        "as-number" : "as number",
 | 
			
		||||
        "invalid-exp" : "invalid JSONata expression in sort node",
 | 
			
		||||
        "too-many" : "too many pending messages in sort node",
 | 
			
		||||
        "invalid-exp" : "Invalid JSONata expression in sort node: __message__",
 | 
			
		||||
        "too-many" : "Too many pending messages in sort node",
 | 
			
		||||
        "clear" : "clear pending message in sort node"
 | 
			
		||||
    },
 | 
			
		||||
    "batch" : {
 | 
			
		||||
 
 | 
			
		||||
@@ -61,7 +61,7 @@ module.exports = function(RED) {
 | 
			
		||||
                key_exp = RED.util.prepareJSONataExpression(key_exp, this);
 | 
			
		||||
            }
 | 
			
		||||
            catch (e) {
 | 
			
		||||
                node.error(RED._("sort.invalid-exp"));
 | 
			
		||||
                node.error(RED._("sort.invalid-exp",{message:e.toString()}));
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
@@ -86,10 +86,14 @@ module.exports = function(RED) {
 | 
			
		||||
                var evaluatedDataPromises = msgs.map(msg => {
 | 
			
		||||
                    return new Promise((resolve,reject) => {
 | 
			
		||||
                        RED.util.evaluateJSONataExpression(key_exp, msg, (err, result) => {
 | 
			
		||||
                            if (err) {
 | 
			
		||||
                                reject(RED._("sort.invalid-exp",{message:err.toString()}));
 | 
			
		||||
                            } else {
 | 
			
		||||
                                resolve({
 | 
			
		||||
                                    item: msg,
 | 
			
		||||
                                    sortValue: result
 | 
			
		||||
                                })
 | 
			
		||||
                            }
 | 
			
		||||
                        });
 | 
			
		||||
                    })
 | 
			
		||||
                });
 | 
			
		||||
@@ -130,10 +134,14 @@ module.exports = function(RED) {
 | 
			
		||||
                    var evaluatedDataPromises = data.map(elem => {
 | 
			
		||||
                        return new Promise((resolve,reject) => {
 | 
			
		||||
                            RED.util.evaluateJSONataExpression(key_exp, elem, (err, result) => {
 | 
			
		||||
                                if (err) {
 | 
			
		||||
                                    reject(RED._("sort.invalid-exp",{message:err.toString()}));
 | 
			
		||||
                                } else {
 | 
			
		||||
                                    resolve({
 | 
			
		||||
                                        item: elem,
 | 
			
		||||
                                        sortValue: result
 | 
			
		||||
                                    })
 | 
			
		||||
                                }
 | 
			
		||||
                            });
 | 
			
		||||
                        })
 | 
			
		||||
                    })
 | 
			
		||||
@@ -186,6 +194,7 @@ module.exports = function(RED) {
 | 
			
		||||
                        node.send(msg);
 | 
			
		||||
                    }
 | 
			
		||||
                }).catch(err => {
 | 
			
		||||
                    node.error(err,msg);
 | 
			
		||||
                });
 | 
			
		||||
            }
 | 
			
		||||
            var parts = msg.parts;
 | 
			
		||||
@@ -209,7 +218,9 @@ module.exports = function(RED) {
 | 
			
		||||
            pending_count++;
 | 
			
		||||
            if (group.count === msgs.length) {
 | 
			
		||||
                delete pending[gid]
 | 
			
		||||
                sortMessageGroup(group);
 | 
			
		||||
                sortMessageGroup(group).catch(err => {
 | 
			
		||||
                    node.error(err,msg);
 | 
			
		||||
                });
 | 
			
		||||
                pending_count -= msgs.length;
 | 
			
		||||
            } else {
 | 
			
		||||
                var max_msgs = max_kept_msgs_count(node);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user