Schema-tools Api Documentation

Version: 0.9.0

schema-tools.core

any-keyword-keys

(any-keyword-keys & schemas)

assoc

(assoc schema & kvs)

Assoc[iate]s key & vals into Schema.

assoc-in

(assoc-in schema [k & ks] v)

Associates a value in a nested associative Schema, where ks is a sequence of keys and v is the new value and returns a new nested Schema. If any levels do not exist, hash-maps will be created.

default

(default schema default)

dissoc

(dissoc schema & ks)

Dissoc[iate]s keys from Schema.

dissoc-in

(dissoc-in schema [k & ks])

Dissociates an entry from a nested associative Schema returning a new nested structure. keys is a sequence of keys. Any empty maps that result will not be present in the new Schema.

get-in

(get-in m ks)(get-in m ks not-found)

Returns the value in a nested associative Schema, where ks is a sequence of keys. Returns nil if the key is not present, or the not-found value if supplied.

merge

(merge & schemas)

Returns a Schema that consists of the rest of the Schemas conj-ed onto the first. If a schema key occurs in more than one map, the mapping from the latter (left-to-right) will be the mapping in the result. Works only with Map schemas.

optional-keys

(optional-keys m)(optional-keys m ks)

Makes given map keys optional. Defaults to all keys.

required-keys

(required-keys m)(required-keys m ks)

Makes given map keys required. Defaults to all keys.

resolve-schema

(resolve-schema schema)

Returns the schema var if the schema contains the :name and :ns definitions (set by schema.core/defschema).

resolve-schema-description

(resolve-schema-description schema)

Returns the schema description, in this lookup order: a) schema meta :description b) schema var meta :doc if not "" c) nil

schema-description

(schema-description schema)

Returns the description of a schema attached via schema-with-description.

schema-value

(schema-value s)

Returns the sub-schema or sub-schemas of given schema.

schema-with-description

(schema-with-description schema description)

Records description in schema’s metadata.

select-keys

(select-keys schema ks)

Like clojure.core/select-keys but handles boths optional-keys and required-keys.

select-schema

(select-schema value schema)(select-schema value schema matcher)

Strips all disallowed keys from nested Map schemas via coercion. Takes an optional coercion matcher for extra coercing the selected value(s) on a single sweep. If a value can’t be coerced to match the schema ExceptionInfo is thrown (like schema.core/validate).

update

(update schema k f & args)

Updates a value in a map with a function.

update-in

(update-in schema [k & ks] f & args)

‘Updates’ a value in a nested associative Schema, where ks is a sequence of keys and f is a function that will take the old value and any supplied args and return the new value, and returns a new nested Schema. If any levels do not exist, hash-maps will be created.