We use Break Versioning. The version numbers follow a <major>.<minor>.<patch>
scheme with the following intent:
Bump | Intent |
---|---|
major | Major breaking changes -- check the changelog for details. |
minor | Minor breaking changes -- check the changelog for details. |
patch | No breaking changes, ever!! |
-SNAPSHOT
versions are preview versions for upcoming releases.
Malli is in alpha.
:sequential
decoding with empty sequence under mt/json-transformer
, fixes #288
mt/-sequential->seq
m/deref
returns original schema, does not throw, fixes #284.malli.util
deref top-level refs recursively: merge
, union
, transform-entries
, optional-keys
, required-keys
, select-keys
and dissoc
.m/deref-all
derefs all top-level references recursively, e.g.(m/deref-all [:schema [:schema int?]])
; => int?
:ref
, :schema
, ::m/schema
have now generators, JSON Schema and Swagger supportmu/subschemas
walks over top-level :ref
and all :schema
s.m/walk
can walk over :ref
and :schema
reference schemas. Walking can be enabled using options :malli.core/walk-refs
and :malli.core/walk-schema-refs
.There are also declarative versions of schema transforming utilities in malli.util/schemas
. These include :merge
, :union
and :select-keys
:
(def registry (merge (m/default-schemas) (mu/schemas)))
(def Merged
(m/schema
[:merge
[:map [:x :string]]
[:map [:y :int]]]
{:registry registry}))
Merged
;[:merge
; [:map [:x :string]]
; [:map [:y :int]]]
(m/deref Merged)
;[:map
; [:x :string]
; [:y :int]]
(m/validate Merged {:x "kikka", :y 6})
; => true
New options for SCI:
:malli.core/disable-sci
for explicitly disabling sci
, fixes #276:malli.core/sci-options
for configuring sci
malli.transform/default-value-transformer
accepts options :key
and :defaults
:
(m/decode
[:map
[:user [:map
[:name :string]
[:description {:ui/default "-"} :string]]]]
nil
(mt/default-value-transformer
{:key :ui/default
:defaults {:map (constantly {})
:string (constantly "")}}))
; => {:user {:name "", :description "-"}}
First stable release.
:list
schemamalli.error/SchemaError
protocol in favor of using m/type-properties
for custom errorsm/-predicate-schema
, m/-partial-predicate-schema
and m/-leaf-schema
m/Schema
: -type-properties
m/children
returns 3-tuple (key, properties, schema) for MapSchema
sm/map-entries
is removed, m/entries
returns a MapEntry
of key & m/-val-schema
:path
in explain is re-implemented: map keys by value, others by child indexm/-walk
and m/Walker
uses :path
, not :in
m/-outer
has new parameter order: walker schema path children options
malli.util/path-schemas
replaced with malli.util/subschemas
& malli.util/distict-by
LensSchema
has a new -key
methodmalli.core
& malli.util
malli.core
to malli.util
com.gfredericks/test.chuck
sci
is not a default dependency. Enabling sci-support:
borkdude/sci
sci.core
(directly or via :preloads
)malli.transform
internals.malli.mermaid
is removed (in favor of malli.dot
)[metosin/malli "0.0.1-20200710.075225-19"]
m/accept
-> m/walk
m/schema-visitor
-> m/schema-walker
m/map-syntax-visitor
-> m/map-syntax-walker
-children
method in Schema
, to return child schemas as instances (instead of just AST)malli.core/*-registry
defs into malli.core/*-schemas
defns to enable DCE for clojurescriptmalli.core/name
& malli.core/-name
renamed to malli.core/type
& malli.core/-type
malli.generator/-generator
is renamed to malli.generator/-schema-generator
Can you improve this documentation? These fine people already did:
Tommi Reiman, Miikka Koskinen & Lucy WangEdit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close