claro.middleware.transform
Generic middlewares to transform resolution results.
wrap-transform
(wrap-transform engine transform-fn)(wrap-transform engine predicate transform-fn)Middleware that will pass any Resolvable that matches Predicate – as well as the resolved result – to transform-fn and use its return value in place of the actual result.
For example, to inject the current timestamp into each Person record:
(def run-engine
(-> (engine/engine)
(wrap-transform
#(instance? Person %)
#(assoc %2 :__timestamp (System/currentTimeMillis)))))
If no predicate is given, all Resolvable values will be transformed.
wrap-transform-by-class
(wrap-transform-by-class engine classes-to-transform transformer-fn)Middleware that will pass any Resolvable of one of the given classes-to-transform – as well as the resolved result – to transform-fn and use its return value in place of the actual result.
For example, to inject the current timestamp into each Person record:
(def run-engine
(-> (engine/engine)
(wrap-transform-classes
[Person]
#(assoc %2 :__timestamp (System/currentTimeMillis)))))