UNPKG

n4s

Version:

Assertion library for form validations

3 lines (2 loc) 858 B
import{ctx as n,enforce as t}from"n4s";import{defaultTo as r,mapFirst as o,isNullish as u,hasOwnProperty as e}from"vest-utils";function s(n,t){return{pass:n}}function i(){return s(!1)}function c(){return s(!0)}function f(n,t){try{return n.run(t)}catch(n){return i()}}function a(t,r){for(const o in r){const u=t[o],e=r[o],s=n.run({value:u,set:!0,meta:{key:o}},(()=>f(e,u)));if(!s.pass)return s}return c()}function p(n){const r={};for(const o in n)r[o]=t.optional(n[o]);return r}t.extend({isArrayOf:function(t,u){return e=o(t,((t,r,o)=>{const e=n.run({value:t,set:!0,meta:{index:o}},(()=>f(u,t)));r(!e.pass,e)})),r(e,c());var e},loose:a,optional:function(n,t){return u(n)?c():f(t,n)},shape:function(n,t){const r=a(n,t);if(!r.pass)return r;for(const r in n)if(!e(t,r))return i();return c()}});export{p as partial}; //# sourceMappingURL=schema.production.js.map