in src/app/teamcity/teamcity-convert.js [95:122]
export function asFlattenProjectTree(projectResponse) {
const projects = filterNotArchivedAndNotRoot(projectResponse.project || []);
const projectMap = associateBy(projects, project => project.id);
const roots = asProjectTree(projects, projectMap);
const flattenProjects = [];
let currentLevel = 0;
/**
* Flattens project tree
*
* @param {TeamcityProject} node - project to flatten
* @returns {undefined}
*/
function flattenTree(node) {
node.level = currentLevel;
flattenProjects.push(node);
if (node.children) {
currentLevel++;
node.children.forEach(flattenTree);
currentLevel--;
}
}
roots.forEach(flattenTree);
return flattenProjects;
}