std.lib.transform.require

process-require

added in 3.0

(process-require req require-key tdata nsv tsch datasource)

Checks for correct entry

(require/process-require {:name :checked} :no-required {:name “Chris”} :account (-> (schema/schema examples/account-name-age-sex) :tree :account) {}) => {:name “Chris”}

wrap-model-post-require

added in 3.0

(wrap-model-post-require f)

Checks for data across elements and schema post transforms

(graph/normalise {:account/name “Chris”} {:schema (schema/schema examples/account-name-age-sex) :pipeline {:post-require {:account {:name :checked}}}} {:normalise require/wrap-model-post-require}) => {:account {:name “Chris”}}

(graph/normalise {:account/age 10} {:schema (schema/schema examples/account-name-age-sex) :pipeline {:post-require {:account {:name :checked}}}} {:normalise require/wrap-model-post-require}) => (throws-info {:nsv :account :name :id :require-key})

wrap-model-pre-require

added in 3.0

(wrap-model-pre-require f)

Checks for data across elements and schema pre transforms (graph/normalise {:account/orders #{{:number 1} {:number 2}}} {:schema (schema/schema examples/account-orders-items-image) :pipeline {:pre-require {:account {:orders {:number :checked}}}}} wrappers) => {:account {:orders #{{:number 1} {:number 2}}}}

(graph/normalise {:account/orders #{{:items {:name “stuff”}} {:number 2}}} {:schema (schema/schema examples/account-orders-items-image) :pipeline {:pre-require {:account {:orders {:number :checked}}}}} wrappers) => (throws-info {:data {:items {:name “stuff”}} :nsv :order :number :id :require-key})