UNPKG

@nerdo/code-reviewer

Version:

A web-based visual git diff tool for reviewing code changes between commits, branches, and tags

34 lines (33 loc) 1.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FileTreeService = void 0; class FileTreeService { buildFileTreeWithChanges(baseTree, changes) { const changeMap = new Map(changes.map(change => [change.path, change])); return this.enrichTreeWithChanges(baseTree, changeMap); } enrichTreeWithChanges(node, changeMap) { const enrichedNode = { ...node }; if (changeMap.has(node.path)) { enrichedNode.change = changeMap.get(node.path); } if (node.children) { enrichedNode.children = node.children.map(child => this.enrichTreeWithChanges(child, changeMap)); } return enrichedNode; } sortFileTree(node) { const sortedNode = { ...node }; if (node.children) { sortedNode.children = [...node.children].sort((a, b) => { if (a.type !== b.type) { return a.type === 'directory' ? -1 : 1; } return a.name.localeCompare(b.name); }); sortedNode.children = sortedNode.children.map(child => this.sortFileTree(child)); } return sortedNode; } } exports.FileTreeService = FileTreeService;