UNPKG

error-serializer

Version:
38 lines (29 loc) 904 B
import{REQUIRED_PROPERTY}from"./check.js"; import{listProps}from"./props.js"; export const applyList=(errorObject,{include,exclude})=>{ if(include===undefined&&exclude===undefined){ return errorObject } const propNames=listProps(errorObject); const propNamesA=applyInclude(propNames,include); const propNamesB=applyExclude(propNamesA,exclude); return Object.fromEntries( propNamesB.map((propName)=>[propName,errorObject[propName]]) ) }; const applyInclude=(propNames,include)=>{ if(include===undefined){ return propNames } const includedProps=new Set([...include,REQUIRED_PROPERTY]); return propNames.filter((propName)=>includedProps.has(propName)) }; const applyExclude=(propNames,exclude)=>{ if(exclude===undefined){ return propNames } const excludedProps=new Set( exclude.filter((propName)=>propName!==REQUIRED_PROPERTY) ); return propNames.filter((propName)=>!excludedProps.has(propName)) };