pure-parse
Version:
Strongly typed validation library that decouples type aliases from validation logic
2 lines (1 loc) • 559 B
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./ParseResult.cjs"),l=require("../guards/primitives.cjs"),n=(o,s)=>t=>{if(!l.isObject(t))return e.failure("Expected type object");const a={};for(const r in t){const c=t[r],i=o(r);if(i.tag==="failure")return e.propagateFailure(e.failure("Invalid property key"),{tag:"object",key:r});const u=s(c);if(u.tag==="failure")return e.propagateFailure(e.failure("Invalid property value"),{tag:"object",key:r});a[i.value]=u.value}return e.success(a)};exports.dictionary=n;