@sidequest/core
Version:
@sidequest/core is the core package of SideQuest, a distributed background job queue for Node.js and TypeScript applications.
29 lines (27 loc) • 931 B
JavaScript
/**
* Generate serializable errors.
* Error objects are not fully serializable by default because their fields are not enumerable.
* For example:
* const err = new Error("my error");
* const foo = { ...err }; // foo is {}
* JSON.stringify(err); // returns '{}'
* This function extracts all own properties, making the error serializable for logs and transport.
* @param err The error object to serialize.
* @returns A serializable error data object.
*/
function serializeError(err) {
const plain = {
name: err.name,
message: err.message,
stack: err.stack,
...Object.getOwnPropertyNames(err)
.filter((k) => !["name", "message", "stack"].includes(k))
.reduce((acc, k) => {
acc[k] = err[k];
return acc;
}, {}),
};
return plain;
}
export { serializeError };
//# sourceMappingURL=serialize-error.js.map