Monorepo / multi-package detection.
Walks the tree once (bounded), counting per-language manifest files at any depth below the root. >=2 manifests of the same kind in distinct subdirectories signals a multi-package workspace; we report the kind, the count, and a best-guess shape label (e.g. "polylith", "workspace", "submodules").
Reflection-clean. Honors the same skip-directory list as the language scanner.
Monorepo / multi-package detection. Walks the tree once (bounded), counting per-language manifest files at any depth below the root. >=2 manifests of the same kind in distinct subdirectories signals a multi-package workspace; we report the kind, the count, and a best-guess shape label (e.g. "polylith", "workspace", "submodules"). Reflection-clean. Honors the same skip-directory list as the language scanner.
(snapshot root)(snapshot root
{:keys [max-files deadline-ms]
:or {max-files default-max-files deadline-ms default-deadline-ms}})Walk root looking for known package manifests. Returns:
{:shape "polylith" | "workspace" | "submodules" | nil :totals {:clojure N :node N ...} ;; only kinds present :files {:clojure ["path/deps.edn" ...] ...} :truncated? bool}
The :files paths are relative to root and OMIT the manifest
in the root itself (we only care about descendants - a single
root-level deps.edn is not a monorepo).
Walk `root` looking for known package manifests. Returns:
{:shape "polylith" | "workspace" | "submodules" | nil
:totals {:clojure N :node N ...} ;; only kinds present
:files {:clojure ["path/deps.edn" ...]
...}
:truncated? bool}
The `:files` paths are relative to `root` and OMIT the manifest
in the root itself (we only care about descendants - a single
root-level deps.edn is not a monorepo).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 |