serialize-error

WebJar for serialize-error

License

License

MIT
GroupId

GroupId

org.webjars.bowergithub.sindresorhus
ArtifactId

ArtifactId

serialize-error
Last Version

Last Version

2.1.0
Release Date

Release Date

Type

Type

jar
Description

Description

serialize-error
WebJar for serialize-error
Project URL

Project URL

http://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.bowergithub.sindresorhus/serialize-error/ -->
<dependency>
    <groupId>org.webjars.bowergithub.sindresorhus</groupId>
    <artifactId>serialize-error</artifactId>
    <version>2.1.0</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.bowergithub.sindresorhus/serialize-error/
implementation 'org.webjars.bowergithub.sindresorhus:serialize-error:2.1.0'
// https://jarcasting.com/artifacts/org.webjars.bowergithub.sindresorhus/serialize-error/
implementation ("org.webjars.bowergithub.sindresorhus:serialize-error:2.1.0")
'org.webjars.bowergithub.sindresorhus:serialize-error:jar:2.1.0'
<dependency org="org.webjars.bowergithub.sindresorhus" name="serialize-error" rev="2.1.0">
  <artifact name="serialize-error" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.bowergithub.sindresorhus', module='serialize-error', version='2.1.0')
)
libraryDependencies += "org.webjars.bowergithub.sindresorhus" % "serialize-error" % "2.1.0"
[org.webjars.bowergithub.sindresorhus/serialize-error "2.1.0"]

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

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
2.1.0