Liking cljdoc? Tell your friends :D

skeptic.cljs.analyzer-driver

Single-form cljs analysis entrypoints via a file-local cljs compiler state.

analyze-form analyzes one already-read cljs form against a supplied ns AST inside a non-leaking compiler state, used by the schema/malli collectors to type a post-macroexpansion declaration body. Whole-file analysis lives on the worker (skeptic.worker.analyzer-cljs); the checker never analyzes cljs source files through this namespace.

cljs ASTs carry :type on :binding/:fn-method nodes that conflicts with skeptic's :type slot (SemanticType), and :binding nodes lack :form. analyze-form strips and synthesizes via normalize-cljs-node so the skeptic annotate pipeline starts from a clean shape.

Single-form cljs analysis entrypoints via a file-local cljs compiler state.

`analyze-form` analyzes one already-read cljs form against a supplied ns AST
inside a non-leaking compiler state, used by the schema/malli collectors to
type a post-macroexpansion declaration body. Whole-file analysis lives on the
worker (`skeptic.worker.analyzer-cljs`); the checker never analyzes cljs
source files through this namespace.

cljs ASTs carry `:type` on `:binding`/`:fn-method` nodes that conflicts
with skeptic's `:type` slot (SemanticType), and `:binding` nodes lack
`:form`. `analyze-form` strips and synthesizes via `normalize-cljs-node`
so the skeptic annotate pipeline starts from a clean shape.
raw docstring

skeptic.cljs.schema-interpreter

sci-sandboxed interpretation of post-macroexpansion Plumatic Schema forms collected from cljs ASTs.

The sci context exposes schema.core as the only allowlisted user namespace; sci interprets the form by applying Plumatic's real JVM functions and returns real Plumatic Schema records. Symbols outside the allowlist (and sci's default clojure.core surface) cannot be resolved, so the interpreter cannot execute arbitrary user code.

SCI is loaded through a private implementation namespace only when a CLJS schema form actually needs interpretation. This keeps skeptic.core and the Lein plugin load path from eagerly loading SCI/edamame.

sci-sandboxed interpretation of post-macroexpansion Plumatic Schema forms
collected from cljs ASTs.

The sci context exposes `schema.core` as the only allowlisted user
namespace; sci interprets the form by applying Plumatic's real JVM
functions and returns real Plumatic Schema records. Symbols outside
the allowlist (and sci's default clojure.core surface) cannot be
resolved, so the interpreter cannot execute arbitrary user code.

SCI is loaded through a private implementation namespace only when a CLJS
schema form actually needs interpretation. This keeps `skeptic.core` and the
Lein plugin load path from eagerly loading SCI/edamame.
raw docstring

skeptic.cljs.sci-schema-interpreter

SCI-backed implementation for skeptic.cljs.schema-interpreter.

Keep this namespace out of eager host/plugin load paths. It requires SCI directly because SCI's namespace-copy helpers are macros.

SCI-backed implementation for `skeptic.cljs.schema-interpreter`.

Keep this namespace out of eager host/plugin load paths. It requires SCI
directly because SCI's namespace-copy helpers are macros.
raw docstring

skeptic.cljs.topo

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.
raw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close