node-blocks
v2.3.0
Published
Flow Based Programming with JavaScript
Downloads
8
Readme
node-blocks
Flow Based Programming with JavaScript
Install
npm install node-blocks
Documentation
coming soon
Creating a Node
In this project Node function constructor is a variable container. You can store any variable on node
import { Node } from 'node-blocks';
var a1 = new Node();
a1.listen(function () {
console.log("Value of a1 got Changed", "new value", a1.read());
});
a1.write('34');
a1.write('50');
Transform a Node into Another
import { Node } from 'node-blocks';
var a1 = new Node();
a1.listen(function () {
console.log("a1 changed", a1.read());
});
var b1 = a1.transform(function (v) {
return 2 * v;
});
b1.listen(function () {
console.log("b1 changed", b1.read());
});
a1.write(10);
a1.write(50);
Connect a Node to another
import { Node } from 'node-blocks';
var a1 = new Node();
a1.listen(function () {
console.log("a1 changed", a1.read());
});
var b1 = new Node();
b1.listen(function () {
console.log("b1 changed", b1.read());
});
a1.connect(b1);
a1.write(10);
a1.write(50);
Create Blocks
Block has kind of machine. Block has multiple inout and multiple out Nodes. You can connect Multiple block to generate Bigger Blocks.
Adder
import { Block } from 'node-blocks';
var adder = new Block({
in: ["x", "y"],
out: ["sum"]
}, function (inp, out) {
var sum = inp.x.read() + inp.y.read();
out.sum.write(sum);
});
adder.out.sum.listen(function () {
console.log("Total Sum is ", adder.out.sum.read());
});
adder.in.x.write(10);
adder.in.y.write(20);
adder.in.x.write(30);
adder.in.y.write(50);
Alternate Syntax
class AdderBlock extends Block {
constructor() {
super();
}
getConfig() {
return {
in: ["x", "y"],
out: ["sum"]
}
}
run(inp, out) {
var sum = inp.x.read() + inp.y.read();
out.sum.write(sum);
}
}
Adder + Doubler
import { Block } from 'node-blocks';
var doubler = new Block({
in: ["x"],
out: ["d"]
}, function (inp, out) {
out.d.write(inp.x.read() * 2);
});
var adder = new Block({
in: ["x", "y"],
out: ["sum"]
}, function (inp, out) {
var sum = inp.x.read() + inp.y.read();
out.sum.write(sum);
});
adder.out.sum.connect(doubler.in.x);
doubler.out.d.listen(function () {
console.log("Double of Sum is ", doubler.out.d.read());
});