Default Nodes
=============
**@bluepjs** coming with default set of **Nodes**. New **Nodes** can be added be **Developers**
.. note::
Current list of **Nodes** is small cuz was developed "on demand" and doesn't contains all basic operations with different types.
New **Nodes** will be updated in next versions.
Booleans
--------
And (A && B)
~~~~~~~~~~~~
.. image:: ../_static/nodes/boolean-and-or.png
:alt: boolean and
Modifier node with multiple inputs.
Set output "Result" as logical AND of inputs.
Or (A || B)
~~~~~~~~~~~
.. image:: ../_static/nodes/boolean-and-or.png
:alt: boolean or
Modifier node with multiple inputs.
Set output "Result" as logical OR of inputs.
Not (!A)
~~~~~~~~
.. image:: ../_static/nodes/boolean-not.png
:alt: boolean not
Modifier node.
Set output "Result" as logical NOT of input.
Equal (A === B)
~~~~~~~~~~~~~~~
.. image:: ../_static/nodes/boolean-eq.png
:alt: boolean eq
Modifier node.
Set output "Result" as A === B
Numbers
-------
Equal (A === B)
~~~~~~~~~~~~~~~
.. image:: ../_static/nodes/number-eq.png
:alt: number eq
Modifier node.
Set output "Result" as A === B
Is even
~~~~~~~
.. image:: ../_static/nodes/number-is-even.png
:alt: number is even
Modifier node.
Set output "Result" to ``true`` if input number is even.
Greater or equal then
~~~~~~~~~~~~~~~~~~~~~
.. image:: ../_static/nodes/number-gte.png
:alt: number is greater or equal then
Modifier node.
Set output "Result" to ``true`` if input A is greater then input B (or equal if boolean input is ``true``).
To String
~~~~~~~~~
.. image:: ../_static/nodes/number-to-string.png
:alt: number to string
Modifier node.
Stringify input number.
Plus (A + B)
~~~~~~~~~~~~
.. image:: ../_static/nodes/number-plus.png
:alt: number plus
Modifier node with multiple inputs.
Set output "Result" as summ of inputs
Strings
-------
Append (A + B)
~~~~~~~~~~~~~~
.. image:: ../_static/nodes/string-append.png
:alt: string append
Modifier node with multiple inputs.
Set output "Result" as united inputs.
Datetime
--------
.. note::
**@bluepjs** uses ``dayjs`` (`website `_) library to manage date/time/datetime.
Create
~~~~~~
.. image:: ../_static/nodes/datetime-create.png
:alt: datetime create
Modifier node.
Creates ``basic/datetime`` object using numbers input.
Unwrap
~~~~~~
.. image:: ../_static/nodes/datetime-unwrap.png
:alt: datetime unwrap
Modifier node.
Unwrap ``basic/datetime`` object into numbers.
To String
~~~~~~~~~
.. image:: ../_static/nodes/datetime-to-string.png
:alt: datetime to string
Modifier node.
Formats ``basic/datetime`` into string by format template.
.. note::
Check `dayjs format docs `_.
Now
~~~
.. image:: ../_static/nodes/datetime-now.png
:alt: datetime now
Executable node.
Created ``basic/datetime`` output with current datetime.
Undefined
---------
Is undefined
~~~~~~~~~~~~
.. image:: ../_static/nodes/undefined-is.png
:alt: is undefined
Modifier node.
Set "Result" output to ``true`` if input is undefined.
.. note::
javascript: ``typeof input === 'undefined'``
Branches and execution flow
---------------------------
For
~~~
.. image:: ../_static/nodes/flow-for.png
:alt: for loop
Executable node.
For loop to iterate by 'from-to-step'
Each
~~~~
.. image:: ../_static/nodes/flow-each.png
:alt: each loop
Executable node.
Each loop to iterate arrays.
If
~~
.. image:: ../_static/nodes/flow-if.png
:alt: if/else node
Executable node.
If/else node.
Switch .. case
~~~~~~~~~~~~~~
.. image:: ../_static/nodes/flow-switch.png
:alt: switch .. case
Executable node with multiple inputs/outputs.
Switch .. case node.
Call
~~~~
.. image:: ../_static/user-blueprint-call-node.png
:alt: Call Node example
Executable node.
Autogenerated by IDE. Can't be added/removed manualy.
Return
~~~~~~
.. image:: ../_static/user-blueprint-return-node.png
:alt: Return Node example
Executable node.
Can be added for **Functions** with outputs.
Wait
~~~~
.. image:: ../_static/nodes/flow-wait.png
:alt: wait
Executable node.
Pause execution flow for ms input.
Function
~~~~~~~~
.. image:: ../_static/nodes/flow-function.png
:alt: function example
Dynamic executable node.
Autogenerated by IDE nodes for each available **Function**.
.. note::
Colorize function described in extended integration example
Others
------
Console log
~~~~~~~~~~~
.. image:: ../_static/nodes/console-log.png
:alt: console log
Executable node.
Prints message to **Vm** console.
Enums
-----
Enums nodes are autogenerated by IDE for each **enum**
Equal
~~~~~
.. image:: ../_static/nodes/enum-eq.png
:alt: enum equal
Modifier node.
Check if inputs are same.
To String
~~~~~~~~~
.. image:: ../_static/nodes/enum-to-string.png
:alt: enum to string
Modifier node.
Stringify input enum value.
Structs
-------
Structs nodes are autogenerated by IDE for each **struct**.
.. note::
Struct on images described in extended integration example.
Pack
~~~~
.. image:: ../_static/nodes/struct-pack.png
:alt: struct pack
Modifier node.
Creates **struct** by fields.
Unpack
~~~~~~
.. image:: ../_static/nodes/struct-unpack.png
:alt: struct unpack
Modifier node.
Unpack **struct** by fields.
To Object
~~~~~~~~~
.. image:: ../_static/nodes/struct-to-object.png
:alt: struct to object
Modifier node.
Convert type from struct type to ``basic/object`` (javascript object)
From Object
~~~~~~~~~~~
.. image:: ../_static/nodes/struct-from-object.png
:alt: struct from object
Modifier node.
Convert type from ``basic/object`` (javascript object) to **struct** type.
Function inputs/outputs/variables, class properties
---------------------------------------------------
For any **Function** (simple function, event function, class constructor or method) there are autogenerated by IDE getters and setters **Nodes**.
Generating depends on variable context and access for class properties.
Get
~~~
Get **Function** variable:
.. image:: ../_static/nodes/get-variable.png
:alt: get function variable
Get **Class** property:
.. image:: ../_static/nodes/get-property.png
:alt: get class property
Getter node.
Get required variable/property. For **Classes** takes object of class to modify.
Set
~~~
Set **Function** variable:
.. image:: ../_static/nodes/set-variable.png
:alt: set function variable
Set **Class** property:
.. image:: ../_static/nodes/set-property.png
:alt: set class property
Executable node.
Set required variable/property. For **Classes** takes object of class to modify.
Classes
-------
Classes **Nodes** are autogenerated by **Classes** and **Actors**.
This
~~~~
.. image:: ../_static/nodes/class-this.png
:alt: class this
Getter node.
Exists only in **Class** methods and constructor blueprints. Returns "this" pointer of object.
Cast to
~~~~~~~
.. image:: ../_static/nodes/class-cast-to.png
:alt: class this
Modifier node.
Exists only when some **Classes** **Inheritance** is found. Convers object type from parent type to child type.
New
~~~
.. image:: ../_static/nodes/class-new.png
:alt: class new
Executalbe dynamic node.
Exists only when some **Classes** exists. Creates new object of class. **Node** inputs are autogenerated by selected constructor inputs.
Constructor
~~~~~~~~~~~
.. image:: ../_static/nodes/class-constructor.png
:alt: class constructor
Executalbe dynamic node.
Exists only when some **Classes** **Inheritance** exists in child classes constructors. Allows call (or not) parent class constructors.
.. note::
Example image demostractes "Demo class 2" constructor. "Demo class 2" defined as extends from "Demo Class 1".
Method
~~~~~~
.. image:: ../_static/nodes/class-method.png
:alt: class method
Executalbe dynamic node.
Autogenerated by IDE for **Classes**/**Actors** methods with accesibility checking (public/protected/private/...). Takes object to use as input.
.. note::
Colorize function described in extended integration example