In this article, we will review how you can serialize/deserialize an error into a plain object. We will look at:
serializeError usage in Flyde
What is Flyde?
serialize-error package
serializeError usage in Flyde
I found the following import in flyde/core/src/remote-debugger/utils.ts.
import { serializeError } from "serialize-error";
and this function is used as shown below:
export const toString = (v: any) => { const type = typeof v; switch (type) { case "object": if (v instanceof Error) { return JSON.stringify(serializeError(v)); } try { return JSON.stringify(v).substr(0, STRING_LIMIT); } catch (e) { return `Object (cannot stringify)`; } default: return `${v}`.substr(0, STRING_LIMIT); } };
What is Flyde?
Flyde is an open-source visual programming for backend logic that integrates with existing codebases. Flyde bridges the gap between technical and non-technical team members. Product managers, designers, and backend developers can collaborate on the same visual flows.
Learn more about Flyde.dev.
serialize-error package
Serialize/deserialize an error into a plain object
Useful if you for example need to JSON.stringify()
or process.send()
the error.
Installation
npm install serialize-error
Usage
import {serializeError, deserializeError} from 'serialize-error'; const error = new Error('🦄'); console.log(error); //=> [Error: 🦄] const serialized = serializeError(error); console.log(serialized); //=> {name: 'Error', message: '🦄', stack: 'Error: 🦄\n at Object.<anonymous> …'} const deserialized = deserializeError(serialized); console.log(deserialized); //=> [Error: 🦄]
Learn more about serialize-error.
About me:
Hey, my name is Ramu Narasinga. I study codebase architecture in large open-source projects.
Email: ramu.narasinga@gmail.com
Want to learn from open-source? Solve challenges inspired by open-source projects.
Top comments (0)