error2json
Usage
var error2json = require( '@stdlib/error/to-json' );
error2json( error )
Returns a JSON representation of an error
object.
var err = new Error( 'beep' );
var json = error2json( err );
/* e.g., returns
{
'type': 'Error',
'name': 'Error', // if present
'message': 'beep',
'stack': '...' // if present
}
*/
The JSON object
is guaranteed to have the following properties:
- type: error type.
- message: error message.
The only standardized cross-platform property is message
. Depending on the platform, the following properties may be present:
- name: error name.
- stack: stack trace.
- code: error code (Node.js system errors).
- errno: error code
string
(Node.js system errors). - syscall:
string
representing the failed system call (Node.js system errors).
The function also serializes all enumerable
properties.
var err = new Error( 'beep' );
err.a = 'b';
err.c = { 'd': 'e' };
var json = error2json( err );
/* e.g., returns
{
'type': 'Error',
'name': 'Error', // if present
'message': 'beep',
'stack': '...', // if present
'a': 'b',
'c': {
'd': 'e'
}
}
*/
Notes
Supported built-in
error
types:The implementation supports custom error types and sets the
type
field to the closest built-inerror
type.function CustomError( msg ) { this.name = 'CustomError'; this.message = msg || ''; this.stack = ( new TypeError() ).stack; return this; } CustomError.prototype = Object.create( TypeError.prototype ); CustomError.prototype.constructor = CustomError; var err = new CustomError( 'boop' ); var json = error2json( err ); /* e.g., returns { 'type': 'TypeError', 'name': 'CustomError', 'message': 'boop', 'stack': '...' } */
Examples
var error2json = require( '@stdlib/error/to-json' );
var err = new Error( 'beep' );
var out = error2json( err );
/* e.g., returns
{
'type': 'Error',
'name': 'Error',
'message': 'beep',
'stack': '...'
}
*/
err = new TypeError( 'invalid type' );
out = error2json( err );
/* e.g., returns
{
'type': 'TypeError',
'name': 'TypeError',
'message': 'invalid type',
'stack': '...'
}
*/
err = new SyntaxError( 'bad syntax' );
out = error2json( err );
/* e.g., returns
{
'type': 'SyntaxError',
'name': 'SyntaxError',
'message': 'bad syntax',
'stack': '...'
}
*/
err = new ReferenceError( 'unknown variable' );
out = error2json( err );
/* e.g., returns
{
'type': 'ReferenceError',
'name': 'ReferenceError',
'message': 'unknown variable',
'stack': '...'
}
*/
err = new URIError( 'bad URI' );
out = error2json( err );
/* e.g., returns
{
'type': 'URIError',
'name': 'URIError',
'message': 'bad URI',
'stack': '...'
}
*/
err = new RangeError( 'value out-of-range' );
out = error2json( err );
/* e.g., returns
{
'type': 'RangeError',
'name': 'RangeError',
'message': 'value out-of-range',
'stack': '...'
}
*/
err = new EvalError( 'eval error' );
out = error2json( err );
/* e.g., returns
{
'type': 'EvalError',
'name': 'EvalError',
'message': 'eval error',
'stack': '...'
}
*/