API

WaveBinder API Reference

Available public methods and usage guidelines for runtime and nodes.

Constructor

Show example
const wb = new WaveBinder(license, protoNodes, services, customFunctions);

The constructor initializes runtime and license bootstrap in background. Nodes are connected with tangleNodes().

Main WaveBinder methods

MethodUseExample
tangleNodes()Connects node dependencies. If license is still pending, tangle is automatically deferred.wb.tangleNodes()
getNodes()Returns runtime nodes.wb.getNodes()
getNodeByName(name)Find node by name.wb.getNodeByName("region")
getNodeByNameAndType(name, type)Find by name and type.wb.getNodeByNameAndType("region", "MULTI")
getNodeChoicesByName(name)MULTI node choices.wb.getNodeChoicesByName("region")
getDataPool()Current value snapshot.wb.getDataPool()
getNodesInfo(logDepth?)Debug node state.wb.getNodesInfo(10)
addCustomFunction(fn, name)Register runtime custom function.wb.addCustomFunction((a, b) => a + b, "sum")

Exported node types

The package also exports runtime node classes: SingleNode, MultiNode, ListNode, ComplexNode.

Show example
import { WaveBinder, ComplexNode, ListNode, MultiNode, SingleNode } from "wave-binder";

const child = wb.getNodeByName("robotBehavior");
if (child?.node?.type === "COMPLEX") {
  (child as ComplexNode).fields.forEach(field => {
    // ...
  });
}

Useful runtime node methods

Node typeMethodUse caseExample
SingleNodenext(value)Set value from user input.wb.getNodeByName("qty").next(10)
MultiNodesetSelection(index)Select an option among choices.wb.getNodeByNameAndType("region", "MULTI").setSelection(1)
ListNodenext(size)Resize dynamic list.wb.getNodeByNameAndType("items", "LIST").next(3)
ListNodemoveElement(from, to)Reorder elements.list.moveElement(3, 0)
ListNodeswapElements(x, y)Swap two elements.list.swapElements(0, 1)
ComplexNodenext(obj)Update composed object.customer.next({ firstName: "Mario" })