The jsonata within NR already has some bindings defined by NR that allow access to flowContext etc.
Now, in my belief to empower* the NR users and encourage the use of jsonata, we need the ability to create custom bindings to the jsonata evaluation.
- as an example, the admin could enable a DB connection as a binding and provide a
$sql(...)
function that can be used within jsonata expressions.
I believe the ideal place will be settings.js.
Comments? Thoughts?
Edit 1
Just out of curiosity; if you need inspiration or a workaround for now, this is how one can create custom bindings using function node -
let data = msg
let bindings = {
// provide binding to access global context as `$global.get("key")`
global: {
get: (k) => {
return global.get(k)
}
}
}
let jexp = RED.util.prepareJSONataExpression('$global.get("env")', node)
msg.payload = jexp.evaluate(data, bindings)
return msg;
Edit 2
If this feature request is accepted, the additional bindings would need to be added here -
PS> I am happy to create a PR, but need to discuss this through first