noflo 1.4.3 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.ecrc +3 -0
- package/.eslintignore +2 -0
- package/{CHANGES.md → CHANGELOG.md} +520 -527
- package/README.md +1 -1
- package/bin/noflo-cache-preheat +4 -4
- package/components/Graph.d.ts +50 -15
- package/components/Graph.js +94 -68
- package/examples/http/HelloController.js +9 -6
- package/examples/spreadsheet/parse.fbp +3 -3
- package/lib/AsCallback.d.ts +22 -9
- package/lib/AsCallback.js +69 -18
- package/lib/AsComponent.d.ts +1 -1
- package/lib/AsComponent.js +5 -3
- package/lib/BaseNetwork.d.ts +16 -6
- package/lib/BaseNetwork.js +65 -31
- package/lib/BasePort.d.ts +39 -12
- package/lib/BasePort.js +34 -6
- package/lib/Component.d.ts +8 -8
- package/lib/Component.js +23 -20
- package/lib/ComponentLoader.d.ts +3 -4
- package/lib/ComponentLoader.js +9 -10
- package/lib/IP.d.ts +12 -8
- package/lib/IP.js +6 -4
- package/lib/InPort.d.ts +64 -9
- package/lib/InPort.js +72 -13
- package/lib/InternalSocket.d.ts +53 -7
- package/lib/InternalSocket.js +51 -14
- package/lib/LegacyNetwork.d.ts +12 -2
- package/lib/LegacyNetwork.js +5 -5
- package/lib/Network.d.ts +13 -2
- package/lib/Network.js +10 -10
- package/lib/NoFlo.d.ts +13 -13
- package/lib/NoFlo.js +29 -27
- package/lib/OutPort.d.ts +64 -13
- package/lib/OutPort.js +73 -15
- package/lib/Platform.d.ts +1 -1
- package/lib/Platform.js +9 -4
- package/lib/Ports.d.ts +11 -12
- package/lib/Ports.js +8 -4
- package/lib/ProcessInput.d.ts +5 -9
- package/lib/ProcessInput.js +8 -9
- package/lib/ProcessOutput.d.ts +2 -2
- package/lib/ProcessOutput.js +5 -5
- package/lib/loader/NodeJs.d.ts +0 -1
- package/lib/loader/NodeJs.js +104 -105
- package/lib/loader/register.d.ts +1 -1
- package/lib/loader/register.js +8 -4
- package/package.json +16 -11
- package/spec/.eslintrc +5 -2
- package/spec/AsCallback.js +9 -13
- package/spec/AsComponent.js +10 -4
- package/spec/AsPromise.js +38 -0
- package/spec/CommonJS.cjs +10 -0
- package/spec/ComponentLoader.js +2 -2
- package/spec/ESModule.mjs +11 -0
- package/spec/Network.js +32 -11
- package/spec/NetworkSync.js +892 -0
- package/spec/Scoping.js +27 -42
- package/spec/Subgraph.js +6 -11
- package/spec/fixtures/componentloader/components/Output.js +1 -1
- package/spec/fixtures/componentloader/components/Repeat.ts +1 -1
- package/spec/fixtures/componentloader/components/RepeatAsync.coffee +1 -1
- package/spec/fixtures/componentloader/node_modules/example/components/Forward.js +1 -1
- package/spec/fixtures/componentloader/node_modules/example/package.json +1 -1
- package/spec/fixtures/componentloader/package.json +1 -1
- package/spec/fixtures/componentloader/spec/Repeat.yaml +1 -1
- package/src/.eslintrc +9 -2
- package/src/components/Graph.js +105 -71
- package/src/lib/AsCallback.js +71 -16
- package/src/lib/AsComponent.js +4 -3
- package/src/lib/BaseNetwork.js +48 -15
- package/src/lib/BasePort.js +43 -9
- package/src/lib/Component.js +8 -8
- package/src/lib/ComponentLoader.js +3 -4
- package/src/lib/IP.js +7 -4
- package/src/lib/InPort.js +74 -13
- package/src/lib/InternalSocket.js +49 -9
- package/src/lib/LegacyNetwork.js +2 -2
- package/src/lib/Network.js +2 -2
- package/src/lib/NoFlo.js +15 -13
- package/src/lib/OutPort.js +77 -14
- package/src/lib/Platform.js +9 -4
- package/src/lib/Ports.js +6 -2
- package/src/lib/ProcessInput.js +7 -9
- package/src/lib/ProcessOutput.js +1 -1
- package/src/lib/loader/NodeJs.js +122 -116
- package/src/lib/loader/register.js +2 -2
- /package/{karma.config.js → karma.config.cjs} +0 -0
- /package/{webpack.config.js → webpack.config.cjs} +0 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { describe, it } from 'node:test';
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
|
+
import * as noflo from '../src/lib/NoFlo.js';
|
|
4
|
+
|
|
5
|
+
describe('NoFlo loaded as ES module', () => {
|
|
6
|
+
it('should be runnable', () => {
|
|
7
|
+
assert.equal(typeof noflo, 'object');
|
|
8
|
+
assert.equal(typeof noflo.Component, 'function');
|
|
9
|
+
});
|
|
10
|
+
});
|
|
11
|
+
|
package/spec/Network.js
CHANGED
|
@@ -41,17 +41,18 @@ describe('NoFlo Network', () => {
|
|
|
41
41
|
describe('with an empty graph', () => {
|
|
42
42
|
let g = null;
|
|
43
43
|
let n = null;
|
|
44
|
-
before((
|
|
44
|
+
before(() => {
|
|
45
45
|
g = new noflo.Graph();
|
|
46
|
-
noflo.createNetwork(g, {
|
|
46
|
+
return noflo.createNetwork(g, {
|
|
47
47
|
subscribeGraph: false,
|
|
48
|
+
asyncDelivery: true,
|
|
48
49
|
delay: true,
|
|
49
50
|
baseDir,
|
|
50
51
|
})
|
|
51
52
|
.then((network) => {
|
|
52
53
|
n = network;
|
|
53
|
-
n.connect(
|
|
54
|
-
}
|
|
54
|
+
return n.connect();
|
|
55
|
+
});
|
|
55
56
|
});
|
|
56
57
|
it('should initially be marked as stopped', () => {
|
|
57
58
|
chai.expect(n.isStarted()).to.equal(false);
|
|
@@ -91,16 +92,14 @@ describe('NoFlo Network', () => {
|
|
|
91
92
|
chai.expect(n.uptime()).to.be.at.least(0);
|
|
92
93
|
});
|
|
93
94
|
describe('with new node', () => {
|
|
94
|
-
it('should contain the node', (
|
|
95
|
-
|
|
95
|
+
it('should contain the node', () => n
|
|
96
|
+
.addNode({
|
|
96
97
|
id: 'Graph',
|
|
97
98
|
component: 'Graph',
|
|
98
99
|
metadata: {
|
|
99
100
|
foo: 'Bar',
|
|
100
101
|
},
|
|
101
|
-
}
|
|
102
|
-
done);
|
|
103
|
-
});
|
|
102
|
+
}));
|
|
104
103
|
it('should have registered the node with the graph', () => {
|
|
105
104
|
const node = g.getNode('Graph');
|
|
106
105
|
chai.expect(node).to.be.an('object');
|
|
@@ -223,6 +222,7 @@ describe('NoFlo Network', () => {
|
|
|
223
222
|
g.addInitial('Foo', 'Merge', 'in');
|
|
224
223
|
return noflo.createNetwork(g, {
|
|
225
224
|
subscribeGraph: false,
|
|
225
|
+
asyncDelivery: true,
|
|
226
226
|
delay: true,
|
|
227
227
|
baseDir,
|
|
228
228
|
})
|
|
@@ -377,6 +377,7 @@ describe('NoFlo Network', () => {
|
|
|
377
377
|
);
|
|
378
378
|
return noflo.createNetwork(graph, {
|
|
379
379
|
subscribeGraph: false,
|
|
380
|
+
asyncDelivery: true,
|
|
380
381
|
delay: false,
|
|
381
382
|
componentLoader: n.loader,
|
|
382
383
|
});
|
|
@@ -428,6 +429,7 @@ describe('NoFlo Network', () => {
|
|
|
428
429
|
};
|
|
429
430
|
noflo.createNetwork(g, {
|
|
430
431
|
subscribeGraph: false,
|
|
432
|
+
asyncDelivery: true,
|
|
431
433
|
delay: true,
|
|
432
434
|
baseDir,
|
|
433
435
|
})
|
|
@@ -450,6 +452,7 @@ describe('NoFlo Network', () => {
|
|
|
450
452
|
g.addInitial('from-edge', 'Merge', 'in');
|
|
451
453
|
noflo.createNetwork(g, {
|
|
452
454
|
subscribeGraph: false,
|
|
455
|
+
asyncDelivery: true,
|
|
453
456
|
delay: true,
|
|
454
457
|
baseDir,
|
|
455
458
|
})
|
|
@@ -471,6 +474,7 @@ describe('NoFlo Network', () => {
|
|
|
471
474
|
g.addInitial('from-IIP', 'Def', 'in');
|
|
472
475
|
noflo.createNetwork(g, {
|
|
473
476
|
subscribeGraph: false,
|
|
477
|
+
asyncDelivery: true,
|
|
474
478
|
delay: true,
|
|
475
479
|
baseDir,
|
|
476
480
|
})
|
|
@@ -505,6 +509,7 @@ describe('NoFlo Network', () => {
|
|
|
505
509
|
noflo.createNetwork(g, {
|
|
506
510
|
delay: true,
|
|
507
511
|
subscribeGraph: false,
|
|
512
|
+
asyncDelivery: true,
|
|
508
513
|
baseDir,
|
|
509
514
|
})
|
|
510
515
|
.then((nw) => {
|
|
@@ -583,6 +588,11 @@ describe('NoFlo Network', () => {
|
|
|
583
588
|
});
|
|
584
589
|
describe('with a very large network', () => {
|
|
585
590
|
it('should be able to connect without errors', function (done) {
|
|
591
|
+
if (noflo.isBrowser()) {
|
|
592
|
+
// Async mode is too much for Puppeteer here
|
|
593
|
+
this.skip();
|
|
594
|
+
return;
|
|
595
|
+
}
|
|
586
596
|
let n;
|
|
587
597
|
this.timeout(100000);
|
|
588
598
|
const g = new noflo.Graph();
|
|
@@ -596,8 +606,7 @@ describe('NoFlo Network', () => {
|
|
|
596
606
|
}
|
|
597
607
|
g.addInitial(() => {
|
|
598
608
|
called++;
|
|
599
|
-
},
|
|
600
|
-
'Callback', 'callback');
|
|
609
|
+
}, 'Callback', 'callback');
|
|
601
610
|
for (n = 0; n <= 10000; n++) {
|
|
602
611
|
g.addInitial(n, `Repeat${n}`, 'in');
|
|
603
612
|
}
|
|
@@ -605,6 +614,7 @@ describe('NoFlo Network', () => {
|
|
|
605
614
|
noflo.createNetwork(g, {
|
|
606
615
|
delay: true,
|
|
607
616
|
subscribeGraph: false,
|
|
617
|
+
asyncDelivery: true,
|
|
608
618
|
baseDir,
|
|
609
619
|
})
|
|
610
620
|
.then((nw) => {
|
|
@@ -637,6 +647,7 @@ describe('NoFlo Network', () => {
|
|
|
637
647
|
return noflo.createNetwork(g, {
|
|
638
648
|
delay: true,
|
|
639
649
|
subscribeGraph: false,
|
|
650
|
+
asyncDelivery: true,
|
|
640
651
|
componentLoader: loader,
|
|
641
652
|
})
|
|
642
653
|
.then((nw) => nw.connect()
|
|
@@ -656,6 +667,7 @@ describe('NoFlo Network', () => {
|
|
|
656
667
|
return noflo.createNetwork(g, {
|
|
657
668
|
delay: true,
|
|
658
669
|
subscribeGraph: false,
|
|
670
|
+
asyncDelivery: true,
|
|
659
671
|
componentLoader: loader,
|
|
660
672
|
})
|
|
661
673
|
.then((nw) => nw.connect()
|
|
@@ -675,6 +687,7 @@ describe('NoFlo Network', () => {
|
|
|
675
687
|
return noflo.createNetwork(g, {
|
|
676
688
|
delay: true,
|
|
677
689
|
subscribeGraph: false,
|
|
690
|
+
asyncDelivery: true,
|
|
678
691
|
componentLoader: loader,
|
|
679
692
|
})
|
|
680
693
|
.then((nw) => nw.connect()
|
|
@@ -695,6 +708,7 @@ describe('NoFlo Network', () => {
|
|
|
695
708
|
return noflo.createNetwork(g, {
|
|
696
709
|
delay: true,
|
|
697
710
|
subscribeGraph: false,
|
|
711
|
+
asyncDelivery: true,
|
|
698
712
|
componentLoader: loader,
|
|
699
713
|
})
|
|
700
714
|
.then((nw) => nw.connect()
|
|
@@ -715,6 +729,7 @@ describe('NoFlo Network', () => {
|
|
|
715
729
|
return noflo.createNetwork(g, {
|
|
716
730
|
delay: true,
|
|
717
731
|
subscribeGraph: false,
|
|
732
|
+
asyncDelivery: true,
|
|
718
733
|
componentLoader: loader,
|
|
719
734
|
})
|
|
720
735
|
.then((nw) => nw.connect()
|
|
@@ -732,6 +747,7 @@ describe('NoFlo Network', () => {
|
|
|
732
747
|
return noflo.createNetwork(g, {
|
|
733
748
|
delay: true,
|
|
734
749
|
subscribeGraph: false,
|
|
750
|
+
asyncDelivery: true,
|
|
735
751
|
componentLoader: loader,
|
|
736
752
|
})
|
|
737
753
|
.then((nw) => nw.connect())
|
|
@@ -759,6 +775,7 @@ describe('NoFlo Network', () => {
|
|
|
759
775
|
return noflo.createNetwork(g, {
|
|
760
776
|
delay: true,
|
|
761
777
|
subscribeGraph: false,
|
|
778
|
+
asyncDelivery: true,
|
|
762
779
|
componentLoader: loader,
|
|
763
780
|
})
|
|
764
781
|
.then((nw) => nw.connect())
|
|
@@ -788,6 +805,7 @@ describe('NoFlo Network', () => {
|
|
|
788
805
|
return noflo.createNetwork(g, {
|
|
789
806
|
delay: true,
|
|
790
807
|
subscribeGraph: false,
|
|
808
|
+
asyncDelivery: true,
|
|
791
809
|
})
|
|
792
810
|
.then((nw) => {
|
|
793
811
|
chai.expect(nw.baseDir).to.equal(baseDir);
|
|
@@ -802,6 +820,7 @@ describe('NoFlo Network', () => {
|
|
|
802
820
|
return noflo.createNetwork(g, {
|
|
803
821
|
delay: true,
|
|
804
822
|
subscribeGraph: false,
|
|
823
|
+
asyncDelivery: true,
|
|
805
824
|
})
|
|
806
825
|
.then((nw) => {
|
|
807
826
|
chai.expect(nw.baseDir).to.equal(process.cwd());
|
|
@@ -812,6 +831,7 @@ describe('NoFlo Network', () => {
|
|
|
812
831
|
return noflo.createNetwork(g, {
|
|
813
832
|
delay: true,
|
|
814
833
|
subscribeGraph: false,
|
|
834
|
+
asyncDelivery: true,
|
|
815
835
|
baseDir,
|
|
816
836
|
})
|
|
817
837
|
.then((nw) => {
|
|
@@ -827,6 +847,7 @@ describe('NoFlo Network', () => {
|
|
|
827
847
|
g = new noflo.Graph();
|
|
828
848
|
return noflo.createNetwork(g, {
|
|
829
849
|
subscribeGraph: false,
|
|
850
|
+
asyncDelivery: true,
|
|
830
851
|
delay: true,
|
|
831
852
|
baseDir,
|
|
832
853
|
})
|