function build(outline) {
    
}

exports.build = build;
@@ -1,8 +1,905 @@
+var endNewLine = 0;%0Avar startNewLine = 0;%0A%0A%0Afunction nNewLines(n) %7B%0A    var str = '';%0A    %0A    for(var i = 0 ; i %3C n ; i++) str += '%5Cn';%0A    %0A    return str;%0A%7D%0A%0A%0Afunction nTabs(n) %7B%0A    var str = '';%0A    %0A    for(var i = 0 ; i %3C n ; i++) str += '%5Ct';%0A    %0A    return str;%0A%7D%0A%0A%0Afunction traverse(root, level) %7B%0A    var walls = '', i;%0A    %0A    %0A    if( level !== 0 ) %7B%0A        walls += nTabs(level-1)+%60$%7Broot.key%7D('$%7Broot.value%7D', function() %7B%5Cn%60;%0A    %7D%0A    %0A    %0A    var childWalls = (root.children %7C%7C %5B%5D).reduce(function(prev, child, idx) %7B%0A        if( idx === 0 ) prev = nNewLines(startNewLine) + prev;%0A        %0A        return prev + traverse(child, level+1)+'%5Cn'+nNewLines(endNewLine);%0A    %7D, '');%0A    %0A    %0A    walls += childWalls === '' ? nTabs(level)+'// your codes here%5Cn' : childWalls;%0A    %0A    %0A    if( level !== 0 ) %7B%0A        walls += nTabs(level-1)+'%7D);';%0A    %7D%0A    %0A    return walls;%0A%7D%0A%0A
 function
@@ -920,16 +920,44 @@
 ) %7B%0A    
+return traverse(outline, 0);
 %0A%7D%0A%0Aexpo

Add traverse function.