UNPKG

@dagrejs/graphlib

Version:

A directed and undirected multi-graph library

26 lines (21 loc) 424 B
module.exports = components; function components(g) { var visited = {}; var cmpts = []; var cmpt; function dfs(v) { if (Object.hasOwn(visited, v)) return; visited[v] = true; cmpt.push(v); g.successors(v).forEach(dfs); g.predecessors(v).forEach(dfs); } g.nodes().forEach(function(v) { cmpt = []; dfs(v); if (cmpt.length) { cmpts.push(cmpt); } }); return cmpts; }