Fresh source discovery and the project-only dependency graph.
cljs.analyzer.api/parse-ns is deliberately used instead of a library-owned
parser. We parse every project ns form from disk when planning a reload: the
analyzer atom is authoritative while compiling, but its dependency entries
describe the previous successful analysis and are stale at precisely the
moment a changed ns form matters most.
Fresh source discovery and the project-only dependency graph. `cljs.analyzer.api/parse-ns` is deliberately used instead of a library-owned parser. We parse every project ns form from disk when planning a reload: the analyzer atom is authoritative while compiling, but its dependency entries describe the previous successful analysis and are stale at precisely the moment a changed ns form matters most.
(file-signature source-paths)Content signature used by the watcher. Content hashes make duplicate native events and timestamp-only touches collapse into one logical save.
Content signature used by the watcher. Content hashes make duplicate native events and timestamp-only touches collapse into one logical save.
(plan old-snapshot new-snapshot)Calculates the direct changes, all affected project namespaces, deletions, and the loadable topological order from old and fresh graph snapshots.
Calculates the direct changes, all affected project namespaces, deletions, and the loadable topological order from old and fresh graph snapshots.
(scan source-paths)Reads project sources and returns source metadata plus project-only edges.
Library requirements remain visible in each :sources entry as :requires,
but :dependencies is restricted to namespaces found under source-paths so
transitive reload never turns a dependency jar into a reload target.
Reads project sources and returns source metadata plus project-only edges. Library requirements remain visible in each `:sources` entry as `:requires`, but `:dependencies` is restricted to namespaces found under `source-paths` so transitive reload never turns a dependency jar into a reload target.
(source-files source-paths)Returns the project ClojureScript files below source-paths, in stable order.
Returns the project ClojureScript files below `source-paths`, in stable order.
(topo-sort dependencies nodes)Orders nodes with project dependencies before their dependents.
Orders `nodes` with project dependencies before their dependents.
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 |