order(...entrypoints) {
    const deps = [];
    const visited = new Set();

    const visit = (dep) => {
      if (visited.has(dep)) return;
      visited.add(dep);
      for (const i of dep.imports) {
        const next = this.resolve_(i);
        visit(next);
      }
      deps.push(dep);
    };

    for (const entrypoint of entrypoints) {
      visit(entrypoint);
    }

    return deps;
  }
Provides a topological sorting of dependencies given the entrypoints.

@param {...!Dependency} entrypoints
@return {!Array<!Dependency>}