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.
Ns-head data (:name / :requires / :require-macros / :use-macros)
is supplied by head-fn, which reads each file on the worker under the
project basis. This namespace never loads cljs sources itself.
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. Ns-head data (`:name` / `:requires` / `:require-macros` / `:use-macros`) is supplied by `head-fn`, which reads each file on the worker under the project basis. This namespace never loads cljs sources itself.
(topo-sort-files ns-sym->file head-fn)Inputs: [ns-sym->file :- #:s{Symbol s/Any} head-fn :- (s/=> #:s{Any s/Any} s/Any)] Returns: [s/Any]
Order source-files so each file's project deps appear before it. head-fn
maps a source-file to its ns-head map (read on the worker).
Inputs: [ns-sym->file :- #:s{Symbol s/Any} head-fn :- (s/=> #:s{Any s/Any} s/Any)]
Returns: [s/Any]
Order source-files so each file's project deps appear before it. `head-fn`
maps a source-file to its ns-head map (read on the worker).(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 |