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