Module: Script
Run a rhai script against configuration-declared input connectors and emit configuration-declared output connectors.
Each declared input becomes an input connector and is bound in the script as a variable named after its key. The script's final expression must be an object map whose entries match the declared output keys; each declared output becomes an output connector fed from that map. Adding or removing entries in the inputs/outputs lists reshapes the node's connectors.
The script is compiled and validated when the node is saved: syntax errors, empty or duplicate keys, and invalid types are rejected in the editor rather than at parse-run time.
Inputs: price (Number), qty (Number)
Outputs: total (Number), taxed (Number)
Script:
#{ total: price * qty, taxed: (price * qty) * 1.2 }
Input: price = 10, qty = 3
Output: total = 30, taxed = 36
Sandbox and limits
The script runs in a hardened sandbox with no file or network access. eval,
import, export, print and debug are disabled (using them is a compile
error). Firm ceilings apply:
- 1,000,000 operations per run (infinite loops are aborted)
- 32 call levels, 64 expression-nesting depth
- 1 MiB max string size, 100,000 max array/map entries
- 64 KiB max script source size
Value conversion
Input values are converted to natural rhai values (whole numbers become
integers, other numbers become floats; arrays, objects and JSON become rhai
arrays/maps; dates and times become strings). Output values are coerced back
to each output's declared type: Date expects YYYY-MM-DD, Time expects
HH:MM:SS, and a value that cannot be coerced fails the node. A missing
output key, or a script whose final expression is not an object map, is an
error.
Parameters
The rhai source code. Each input is bound as a variable named after its key; the final expression must be an object map whose entries match the declared output keys. Compiled and checked on save.
List of declared inputs. Each entry has a key (connector key and script variable name — unique and non-empty), a label (shown on the node) and a type. Each entry becomes an input connector.
List of declared outputs. Each entry has a key (read from the returned object map — unique and non-empty), a label and a type. Each entry becomes an output connector.
Input
One connector per entry of the Inputs parameter, typed as configured and labeled with the entry's label. All declared inputs are required.
Output
One connector per entry of the Outputs parameter, carrying the value read by key from the object map the script returns, coerced to the declared type.