UNPKG

modern-errors-serialize

Version:
65 lines (39 loc) 1.16 kB
import{serialize as serializeToObject}from"error-serializer"; import{applyLoose}from"./loose.js"; export const serialize=({ErrorClass,instancesData,errorInfo},value)=> serializeValue({ErrorClass,instancesData,errorInfo,value}); export const toJSON=({ErrorClass,instancesData,errorInfo,error})=> serializeValue({ErrorClass,instancesData,errorInfo,value:error}); const serializeValue=({ErrorClass,instancesData,errorInfo,value})=>{ const{ options:{loose,shallow,include,exclude,transformObject} }=errorInfo(value); const valueA=applyLoose(value,loose,ErrorClass); return serializeToObject(valueA,{ loose, shallow, include, exclude, transformObject:applyTransformObject.bind(undefined,{ instancesData, transformObject }) }) }; const applyTransformObject=( {instancesData,transformObject}, errorObject, error)=> { serializePluginsOpts(errorObject,error,instancesData); transformObject?.(errorObject,error) }; const serializePluginsOpts=(errorObject,error,instancesData)=>{ if(!instancesData.has(error)){ return } const{pluginsOpts}=instancesData.get(error); if(Object.keys(pluginsOpts).length!==0){ errorObject.pluginsOpts=pluginsOpts } };