ClojureScript admission for Malli function schemas.
Mirrors skeptic.malli-spec.collect/ns-malli-spec-results for cljs source
files. Two channels:
:def AST has [:var :info :meta]
holding the source-form metadata. The :malli/schema key on that map
holds the literal Malli spec vector (self-evaluating; no quote wrapper).(malli.core/=> sym SPEC) macroexpands to a
top-level :op :do whose form is
(do (malli.core/-register-function-schema! 'ns 'sym SPEC nil :cljs id) 'ns/sym).
Classification walks the outer :form directly.No cenv reads, no caller-managed compiler state.
ClojureScript admission for Malli function schemas. Mirrors `skeptic.malli-spec.collect/ns-malli-spec-results` for cljs source files. Two channels: - Var-meta channel: each per-form `:def` AST has `[:var :info :meta]` holding the source-form metadata. The `:malli/schema` key on that map holds the literal Malli spec vector (self-evaluating; no quote wrapper). - Registration channel: `(malli.core/=> sym SPEC)` macroexpands to a top-level `:op :do` whose form is `(do (malli.core/-register-function-schema! 'ns 'sym SPEC nil :cljs id) 'ns/sym)`. Classification walks the outer `:form` directly. No cenv reads, no caller-managed compiler state.
(ns-malli-spec-results-cljs source-file ns-sym top-level-asts)Inputs: [source-file :- s/Any ns-sym :- s/Symbol top-level-asts :- [aas/AnnotatedNode]] Returns: mcs/MalliAdmissionResult
Per-namespace Malli admission for cljs sources. Inputs:
source-file: the cljs source file, attached to error results.ns-sym: the namespace symbol.top-level-asts: per-form analyzed ASTs from
skeptic.cljs.analyzer-driver/analyze-form. Both intake channels
derive from these ASTs alone; no cenv reads.Inputs: [source-file :- s/Any ns-sym :- s/Symbol top-level-asts :- [aas/AnnotatedNode]] Returns: mcs/MalliAdmissionResult Per-namespace Malli admission for cljs sources. Inputs: - `source-file`: the cljs source file, attached to error results. - `ns-sym`: the namespace symbol. - `top-level-asts`: per-form analyzed ASTs from `skeptic.cljs.analyzer-driver/analyze-form`. Both intake channels derive from these ASTs alone; no cenv reads.
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 |