serialize-error

WebJar for serialize-error

License

License

MIT
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

serialize-error
Last Version

Last Version

8.1.0
Release Date

Release Date

Type

Type

jar
Description

Description

serialize-error
WebJar for serialize-error
Project URL

Project URL

https://www.webjars.org
Source Code Management

Source Code Management

https://github.com/sindresorhus/serialize-error

Download serialize-error

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/serialize-error/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>serialize-error</artifactId>
    <version>8.1.0</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/serialize-error/
implementation 'org.webjars.npm:serialize-error:8.1.0'
// https://jarcasting.com/artifacts/org.webjars.npm/serialize-error/
implementation ("org.webjars.npm:serialize-error:8.1.0")
'org.webjars.npm:serialize-error:jar:8.1.0'
<dependency org="org.webjars.npm" name="serialize-error" rev="8.1.0">
  <artifact name="serialize-error" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='serialize-error', version='8.1.0')
)
libraryDependencies += "org.webjars.npm" % "serialize-error" % "8.1.0"
[org.webjars.npm/serialize-error "8.1.0"]

Dependencies

compile (1)

Group / Artifact Type Version
org.webjars.npm : type-fest jar [0.20.2,0.21)

Project Modules

There are no modules declared in this project.

serialize-error

Serialize/deserialize an error into a plain object

Useful if you for example need to JSON.stringify() or process.send() the error.

Install

$ npm install serialize-error

Usage

const {serializeError, deserializeError} = require('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: ๐Ÿฆ„]

API

serializeError(value, options?)

Type: Error | unknown

Serialize an Error object into a plain object.

Non-error values are passed through. Custom properties are preserved. Non-enumerable properties are kept non-enumerable (name, message, stack). Enumerable properties are kept enumerable (all properties besides the non-enumerable ones). Buffer properties are replaced with [object Buffer]. Circular references are handled. If the input object has a .toJSON() method, then it's called instead of serializing the object's properties. It's up to .toJSON() implementation to handle circular references and enumerability of the properties.

.toJSON examples:

const {serializeError} = require('serialize-error');

class ErrorWithDate extends Error {
	constructor() {
		super();
		this.date = new Date();
	}
}

const error = new ErrorWithDate();

serializeError(error);
// => {date: '1970-01-01T00:00:00.000Z', name, message, stack}
const {serializeError} = require('serialize-error');

class ErrorWithToJSON extends Error {
	constructor() {
		super('๐Ÿฆ„');
		this.date = new Date();
	}

	toJSON() {
		return serializeError(this);
	}
}

const error = new ErrorWithToJSON();

console.log(serializeError(error));
// => {date: '1970-01-01T00:00:00.000Z', message: '๐Ÿฆ„', name, stack}

deserializeError(value, options?)

Type: {[key: string]: unknown} | unknown

Deserialize a plain object or any value into an Error object.

Error objects are passed through. Non-error values are wrapped in a NonError error. Custom properties are preserved. Circular references are handled.

options

Type: object

maxDepth

Type: number
Default: Number.POSITIVE_INFINITY

The maximum depth of properties to preserve when serializing/deserializing.

const {serializeError} = require('serialize-error');

const error = new Error('๐Ÿฆ„');
error.one = {two: {three: {}}};

console.log(serializeError(error, {maxDepth: 1}));
//=> {name: 'Error', message: 'โ€ฆ', one: {}}

console.log(serializeError(error, {maxDepth: 2}));
//=> {name: 'Error', message: 'โ€ฆ', one: { two: {}}}

Versions

Version
8.1.0
7.0.1
2.1.0
2.0.0