serialize-every-error
Version:
This package strives to be an exhaustive alternative to normal error serialization for logging
14 lines (9 loc) • 431 B
JavaScript
import getShallowGreedyClone from '../utils/get-shallow-greedy-clone.js';
export default (err, serializeError) => {
const cause = err.cause.bind(err);
const shallowClone = getShallowGreedyClone(err, (key) => key != 'cause');
const serialized = serializeError(shallowClone);
serialized.cause = cause();
return serialized;
};
export const canHandle = (err) => err.cause && typeof err.cause === 'function';