error-serializer
Version:
Convert errors to/from plain objects
38 lines (29 loc) • 904 B
JavaScript
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))
};