Dependency ordering for cljs/cljc source files. Returns files in an order where each file's project-local :require'd dependencies appear before it. When a cycle blocks standard topo progress, the next pick is chosen by tiebreaker: nss without :require-macros / :use-macros first, then fewest :requires, then ns-sym alphabetical.
Dependency ordering for cljs/cljc source files. Returns files in an order where each file's project-local :require'd dependencies appear before it. When a cycle blocks standard topo progress, the next pick is chosen by tiebreaker: nss without :require-macros / :use-macros first, then fewest :requires, then ns-sym alphabetical.
(topo-sort-files ns-sym->file)Inputs: [ns-sym->file :- #:s{Symbol s/Any}] Returns: [s/Any]
Order source-files so each file's project deps appear before it.
Inputs: [ns-sym->file :- #:s{Symbol s/Any}]
Returns: [s/Any]
Order source-files so each file's project deps appear before it.(topo-sort-heads heads)Inputs: [heads :- #:s{Symbol s/Any}] Returns: [s/Symbol]
Pure topo sort over a heads map. Each head supplies
:project-requires, :macro-free?, :requires-count. Returns ns-syms
in dependency-respecting order; cycles fall through to cycle-pick.
Inputs: [heads :- #:s{Symbol s/Any}]
Returns: [s/Symbol]
Pure topo sort over a `heads` map. Each head supplies
`:project-requires`, `:macro-free?`, `:requires-count`. Returns ns-syms
in dependency-respecting order; cycles fall through to `cycle-pick`.cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |