Directed graphs analyzer for parallel traversals
import { analyze } from 'toposource'
analyze([['a', 'b'], ['b', 'c'], ['d', 'c'], ['e', 'f']])
// →
{
next: new Map([
['a', ['b']],
['b', ['c']],
['d', ['c']],
['e', ['f']]
]),
prev: new Map([
['b', ['a']],
['c', ['b', 'd']],
['f', ['e']]
]),
sources: [ 'a', 'd', 'e' ],
queue: ['a', 'd', 'e', 'b', 'c', 'f'],
graphs: [{
sources: ['a', 'd'],
nodes: new Set(['a', 'b', 'd', 'c'])
}, {
sources: ['e'],
nodes: new Set(['e', 'f'])
},
}