Liking cljdoc? Tell your friends :D

io.pedestal.interceptor.component

Streamline the use of Components as interceptors.

The definterceptor macro is used to implement a record that extends [[IntoInterceptor]] and so can be used an interceptor.

Streamline the use of Components as interceptors.

The [[definterceptor]] macro is used to implement a record that extends
[[IntoInterceptor]] and so can be used an interceptor.
raw docstring

component->interceptorclj

(component->interceptor interceptor-name component)

Converts a component into an interceptor. The component must implement at least one of the Handler, OnEnter, OnLeave, or OnError protocols.

A component can implement the [[IntoInterceptor]] protocol and base the -interceptor method on this function.

Returns an interceptor record.

Converts a component into an interceptor.   The component must implement
at least one of the [[Handler]], [[OnEnter]], [[OnLeave]], or [[OnError]] protocols.

A component can implement the [[IntoInterceptor]] protocol and base the
`-interceptor` method on this function.

Returns an interceptor record.
sourceraw docstring

definterceptorcljmacro

(definterceptor record-name fields & opts+specs)

Defines an interceptor component, as a Clojure record. The interceptor's name will be the record's name as a namespace qualified keyword.

After the optional options map, and before the normal protocol/method specs, additional methods may be added:

  • (handle [this context])
  • (enter [this context])
  • (leave [this context])
  • (error [this context exception])

For each of these, definterceptor will provide the matching protocol.

Example:

(definteceptor upcase []

  (enter [_ context] (update-in context [:request :query-params :id] string/upper-case)))

The class name will match the record-name (which is typically kebab-cased). That is (definterceptor foo-bar ...) will generate the same class name as (defrecord foo-bar ...) even though this is not the normal Pascal Case naming convention for most records.

The record implements the [[IntoInterceptor]] protocol; see component->interceptor.

The normal map->record and ->record construction functions are generated.

Defines an interceptor component, as a Clojure record. The interceptor's name will be
the record's name as a namespace qualified keyword.

After the optional options map, and before the normal protocol/method specs,
additional methods may be added:

- `(handle [this context])`
- `(enter [this context])`
- `(leave [this context])`
- `(error [this context exception])`

For each of these, `definterceptor` will provide the matching protocol.

Example:

```
(definteceptor upcase []

  (enter [_ context] (update-in context [:request :query-params :id] string/upper-case)))
```

The class name will match the record-name (which is typically kebab-cased).
That is `(definterceptor foo-bar ...)` will generate the same class name as
`(defrecord foo-bar ...)` even though this is not the normal Pascal Case naming
convention for most records.

The record implements the [[IntoInterceptor]] protocol; see [[component->interceptor]].

The normal `map->record` and `->record` construction functions are generated.
sourceraw docstring

Handlercljprotocol

handleclj

(handle _ request)

Handles a request map and returns a response map, or a channel that conveys the response map.

Handles a request map and returns a response map, or a channel that conveys the response map.
source

OnEntercljprotocol

enterclj

(enter _ context)

Corresponds to the :enter phase of a standard interceptor; passed the context and returns the (new) context, or a core.async channel that will convey the new context.

Corresponds to the :enter phase of a standard interceptor; passed the context and returns the (new) context,
or a core.async channel that will convey the new context.
source

OnErrorcljprotocol

errorclj

(error _ context exception)

Corresponds to the :error phase of a standard interceptor; passed the context and an exception, and returns the (new) context, or a core.async channel that will convey the new context.

Corresponds to the :error phase of a standard interceptor; passed the context and an exception, and returns the (new) context,
or a core.async channel that will convey the new context.
source

OnLeavecljprotocol

leaveclj

(leave _ context)

Corresponds to the :leave phase of a standard interceptor; passed the context and returns the (new) context, or a core.async channel that will convey the new context.

Corresponds to the :leave phase of a standard interceptor; passed the context and returns the (new) context,
or a core.async channel that will convey the new context.
source

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close