1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var _ = require("lodash");
|
4 | var isUri_1 = require("./isUri");
|
5 | var parseDependencies_1 = require("./parseDependencies");
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 | function collectDependencies(dependencies, flow, nodeDefinitions) {
|
16 | flow.nodes.forEach(function (node) {
|
17 | var provider;
|
18 | if (node.provider && isUri_1.isUri(node.provider)) {
|
19 | provider = node.provider;
|
20 | }
|
21 | else {
|
22 | var providerHandle = node.provider || '@';
|
23 | if (flow.providers && flow.providers[providerHandle]) {
|
24 | provider =
|
25 | flow.providers[providerHandle].url ||
|
26 | flow.providers[providerHandle].path;
|
27 | }
|
28 | else {
|
29 | throw Error('Flow does not contain a providers section.');
|
30 | }
|
31 | }
|
32 | var nodeDefinition = _.get(nodeDefinitions, [provider, node.ns, node.name]);
|
33 | if (nodeDefinition.type === 'flow') {
|
34 | dependencies = collectDependencies(dependencies, nodeDefinition, nodeDefinitions);
|
35 | }
|
36 | else {
|
37 | if (nodeDefinition.dependencies) {
|
38 | dependencies = parseDependencies_1.parseDependencies(dependencies, nodeDefinition.dependencies);
|
39 | }
|
40 | }
|
41 | });
|
42 | return dependencies;
|
43 | }
|
44 | exports.collectDependencies = collectDependencies;
|
45 |
|
\ | No newline at end of file |