@m59/error-cereal
Version:
Serialize a JavaScript error to a regular, json stringifiable object, and deserialize an object into an error.
17 lines (15 loc) • 469 B
JavaScript
const core_error_constructors = {
Error,
EvalError,
RangeError,
ReferenceError,
SyntaxError,
TypeError,
URIError
}
export const deserialize_error = (value, { custom_error_constructors = {} } = {}) => {
const error_name = value.name || 'Error'
const error_constructors = { ...core_error_constructors, ...custom_error_constructors }
const error_constructor = error_constructors[error_name]
return Object.assign(new error_constructor(value.message), value)
}