Topological sorting with grouping support.
See the API Reference
Example
const Topo = require("topo");
const morning = new Topo();
morning.add("Nap", { after: ["breakfast", "prep"] });
morning.add(["Make toast", "Pour juice"], {
before: "breakfast",
group: "prep",
});
morning.add("Eat breakfast", { group: "breakfast" });
morning.nodes; // ['Make toast', 'Pour juice', 'Eat breakfast', 'Nap']