UNPKG

@sidequest/core

Version:

@sidequest/core is the core package of SideQuest, a distributed background job queue for Node.js and TypeScript applications.

31 lines (28 loc) 961 B
'use strict'; /** * 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; } exports.serializeError = serializeError; //# sourceMappingURL=serialize-error.cjs.map