error-serializer
Version:
Convert errors to/from plain objects
43 lines (22 loc) • 714 B
JavaScript
import{listSafeKeys}from"./check.js";
export const SET_CORE_PROPS=new Set(["name","message"]);
export const NON_ENUMERABLE_PROPS=new Set([
"name",
"message",
"stack",
"cause",
"errors",
"lineNumber",
"columnNumber",
"fileName"]
);
export const listProps=(objectOrError)=>{
const propNames=Object.keys(objectOrError).filter(isNotIgnoredProp);
const propNamesA=[...new Set([...propNames,...CORE_PROPS])];
return listSafeKeys(objectOrError,propNamesA).filter(
(propName)=>objectOrError[propName]!==undefined
)
};
const isNotIgnoredProp=(propName)=>!IGNORED_PROPS.has(propName);
const IGNORED_PROPS=new Set(["toJSON","constructorArgs"]);
const CORE_PROPS=[...NON_ENUMERABLE_PROPS,"line","column"];