This is fork from https://github.com/liy/topo-sort for more informative error object.
When the graph is cyclic than the Error object has property "circular" with the Array of circular ids.
Must not add any null, undefined or empty string node.
var TopoSort = require('topo-sort');
var tsort = new TopoSort();
tsort.add('a', ['b', 'c']);
tsort.add('d', ['a', 'b', 'c']);
// Output d,a,c,b
var l = tsort.sort();