Spend a lot of time with Malli and Reitit for revisiting, priorising and designing the essential missing core features.
For Malli, my top priority is to resolve the derivation and declaration of effective types, which will simplify library internals, writing schema extensions and makes CLJS bundle size smaller. Might have to break the protocol-api for this.
For Reitit, drafting a proper plugin system, have studied how this is solved in other ecosystems (e.g. fastify, phoenix). Reitit is powerful, proper plugin system makes it much more approachable.
Have also reviews lot's of PRs, helped people online and pushed out some smaller features and release the following:
- Strip-extra-keys should not break on non-map values #818
- New optional time-schemas for the JVM on top of
java.time
::time/duration
,:time/instant
,:time/local-date
,:time/local-date-time
,:time/local-time
,:time/offset-date-time
,:time/offset-time
,:time/zone-id
,:time/zone-offset
,:time/zoned-date-time
, see README
- automatic type inferring with
:enum
and:=
withmalli.transform
andmalli.json-schema
- detects homogenous:string
,:keyword
,:symbol
,:int
and:double
), #782 & #784 - New
malli.core/coercer
andmalli.core/coerce
to both decode and validate a value, see Docs - New
malli.core/-no-op-transformer
- BREAKING: new implemenation for
:map-of
inferring viamalli.provider/provide
:- Option
:malli.provider/map-of-threshold
default dropped (was 3) - New and configurable (
malli.provider/map-of-accept
) function ofstats -> boolean
for identifying:map-of
- Option
- BREAKING: Prefer to real Schemas instead of predicates in inferring (e.g.
:int
over'int?
) - Adds
:pred
option tom/-map-schema
#767 - New
:some
schema (likesome?
) - New
malli.experimental.describe
to describe Schemas in english:
* (require '[malli.experimental.describe :as med])
(med/describe [:map {:closed true} [:x int?]])
; => "map where {:x -> <integer>} with no other keys"
- Add reitit-frontend support for fragment string #581
- reloading-ring-handler #584
- Remove redundant s/and #552
- FIX: redirect-trailing-slash-handler strips query-params #565
- BREAKING: Drop tests for Clojure 1.9, run tests with 1.10 & 1.11
- NEW option
:meta-merge
on a router for custom merge strategy on route data - Swagger: support operationId in generated swagger json #452 & #569
- Update documentation and link to the startrek project #578
- Upgrade jackson for CVE-2022-42003 and CVE-2022-42004 #577
- Improved coercion errors perf #576
- Add example for Reitit + Pedestal + Malli coercion #572
- Handle empty seq as empty string in query-string #566
- Polish pedestal chains when printing context diffs #557
- Updated dependencies:
[metosin/ring-swagger-ui "4.15.5"] is available but we use "4.3.0"
[metosin/jsonista "0.3.7"] is available but we use "0.3.5"
[metosin/malli "0.10.1"] is available but we use "0.8.2"
[fipp "0.6.26"] is available but we use "0.6.25"
[ring/ring-core "1.9.6"] is available but we use "1.9.5"
[com.fasterxml.jackson.core/jackson-core "2.14.2"] is available but we use "2.14.1"
[com.fasterxml.jackson.core/jackson-databind "2.14.2"] is available but we use "2.14.1"
Spring is coming :)