Impl-resolution helper shared across every extension point.
A spec references an extension in one of two forms:
{:key "my-fn"} → look up in the caller's registry map {:ns "my.ns" :fn "my-fn"} → resolve a Clojure var by symbol
Both forms return the extension implementation; the caller invokes it with whatever arity is appropriate for the extension type.
Impl-resolution helper shared across every extension point.
A spec references an extension in one of two forms:
{:key "my-fn"} → look up in the caller's registry map
{:ns "my.ns" :fn "my-fn"} → resolve a Clojure var by symbol
Both forms return the extension implementation; the caller invokes it
with whatever arity is appropriate for the extension type.(resolve-impl cfg registry kind)Resolve an extension config to its implementation.
cfg — {:key ...} or {:ns ... :fn ...} from a step / endpoint spec
registry — the caller's registry map, e.g. the config's :validators map
kind — extension kind name, used only for the error message
(e.g. "validator", "transformer", "resolver")
Throws ex-info when :key is present but missing from the registry, or when :ns/:fn resolves to nothing.
Resolve an extension config to its implementation.
`cfg` — {:key ...} or {:ns ... :fn ...} from a step / endpoint spec
`registry` — the caller's registry map, e.g. the config's :validators map
`kind` — extension kind name, used only for the error message
(e.g. "validator", "transformer", "resolver")
Throws ex-info when :key is present but missing from the registry, or
when :ns/:fn resolves to nothing.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 |