Support the ability to interactively update the middleware of the running nREPL server. This can be used by tools to configure an existing instance of an environment after connection.
It can also be used to load extra namespaces, in addition to the ones that new middleware are defined in, to handle existing middleware that performs deferred loading.
When combined with the sideloader, this could be used to inject middleware that are unknown to the server prior to connection.
Support the ability to interactively update the middleware of the *running* nREPL server. This can be used by tools to configure an existing instance of an environment after connection. It can also be used to load extra namespaces, in addition to the ones that new middleware are defined in, to handle existing middleware that performs deferred loading. When combined with the sideloader, this could be used to inject middleware that are unknown to the server prior to connection.
(unknown-op {:keys [op transport] :as msg})
Sends an :unknown-op :error for the given message.
Sends an :unknown-op :error for the given message.
(wrap-dynamic-loader h)
The dynamic loader is both part of the middleware stack, but is also able to modify the stack. To further complicate things, the middleware architecture works best when each middleware is a var, resolving to an 1-arity function.
The state of the external world is thus passed to this middleware by rebinding
the *state*
var, and we expect this to have two keys:
:handler
, the current active handler:stack
, a col of vars that represent the current middleware stack.Note that if *state*
is not rebound, this middleware will not work.
The dynamic loader is both part of the middleware stack, but is also able to modify the stack. To further complicate things, the middleware architecture works best when each middleware is a var, resolving to an 1-arity function. The state of the external world is thus passed to this middleware by rebinding the `*state*` var, and we expect this to have two keys: - `:handler`, the current active handler - `:stack`, a col of vars that represent the current middleware stack. Note that if `*state*` is not rebound, this middleware will not work.
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close