Code coverage report for lib/parser/commands/tee.js

Statements: 100% (42 / 42)      Branches: 75% (6 / 8)      Functions: 100% (5 / 5)      Lines: 100% (42 / 42)      Ignored: none     

All files » lib/parser/commands/ » tee.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 601 1 1 1 1         1 6 6 6 6 6   6 6 6 16 16 16     1 6 16 16 16 16 16       1 6 6   6 6 6 6   6 6 12 12 12     6 4   6 6 6   1    
var $ = require("../utils/init");
var GraphModule = require("../../common/graph");
var Graph = GraphModule.Graph;
var Boundary = GraphModule.Boundary;
var Connection = GraphModule.Connection;
 
/**
Arranges the nodes using a hierarchical layout
*/
function arrangeLayout(previousCommand, boundaries) {
    var maxX = 0;
    var minY = previousCommand.position.y - (boundaries.length - 1) * 250;
    Eif (minY < 0) {
        previousCommand.position.y -= minY;
        minY = 0;
    }
    var prevBound = null;
    var translateX = previousCommand.position.x + 500;
    boundaries.forEach(function (boundary) {
        var translateY = prevBound ? prevBound.bottom - boundary.top : minY;
        boundary.translateXY(translateX, translateY);
        prevBound = boundary;
    });
}
function connector(parser, previousCommand, result, boundaries, tracker) {
    return function (commandList) {
        var subresult = parser.parseAST(commandList, tracker);
        boundaries.push(Boundary.createFromComponents(subresult.components));
        result.components = result.components.concat(subresult.components);
        result.connections = result.connections.concat(subresult.connections);
        result.connections.push(new Connection(previousCommand, "output", subresult.firstMainComponent, 'input'));
    };
}
 
function parseCommand(argsNode, parser, tracker, previousCommand, nextcommands, firstMainComponent, components, connections) {
    var boundaries, i$, len$, argNode;
    boundaries = [];
 
    var result = new Graph();
    result.firstMainComponent = firstMainComponent;
    result.components = components;
    result.connections = connections;
 
    var connectTo = connector(parser, previousCommand[1], result, boundaries, tracker);
    for (i$ = 0, len$ = argsNode.length; i$ < len$; ++i$) {
        argNode = argsNode[i$];
        Eif ($.typeOf(argNode) == 'outToProcess') {
            connectTo(argNode[1]);
        }
    }
    if (nextcommands.length) {
        connectTo(nextcommands);
    }
    arrangeLayout(previousCommand[1], boundaries);
    result.counter = tracker.id;
    return result;
}
exports.parseCommand = parseCommand;
;