UNPKG

885 BJavaScriptView Raw
1var omit = require("lodash/omit");
2var through = require("through2");
3var assign = require("lodash/assign");
4var includes = require("lodash/includes");
5
6module.exports = function() {
7 return through.obj(function(data, enc, done) {
8 try {
9 done(null, filterGraph(data));
10 } catch (err) {
11 done(err);
12 }
13 });
14};
15
16function isStealConditional(name) {
17 return includes(name, "steal-conditional/conditional");
18}
19
20function filterGraph(data) {
21 var graph = data.graph;
22
23 var configMain = data.loader.configMain;
24 var configNode = graph[configMain];
25 var blackList = [];
26
27 configNode.dependencies.forEach(function visit(name) {
28 if (!isStealConditional(name) && !includes(blackList, name)) {
29 blackList.push(name);
30
31 if (graph[name]) {
32 (graph[name].dependencies || []).forEach(visit);
33 }
34 }
35 });
36
37 return assign({}, omit(data, "graph"), { graph: omit(graph, blackList) });
38}