var toJSON = require( '@stdlib/utils/error-to-json' );
Returns a JSON representation of an error
object.
var err = new Error( 'beep' );
var json = toJSON( err );
/* 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 = toJSON( err );
/* returns
{
"type": "Error",
"name": "Error", // if present
"message": "beep",
"stack": "...", // if present
"a": "b",
"c": {
"d": "e"
}
}
*/
-
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 = toJSON( err ); /* { "type": "TypeError", "name": "CustomError", "message": "boop", "stack": "..." } */
var toJSON = require( '@stdlib/utils/error-to-json' );
var err = new Error( 'beep' );
var out = toJSON( err );
/* returns
{
"type": "Error",
"name": "Error",
"message": "beep",
"stack": "..."
}
*/
err = new TypeError( 'invalid type' );
out = toJSON( err );
/* returns
{
"type": "TypeError",
"name": "TypeError",
"message": "invalid type",
"stack": "..."
}
*/
err = new SyntaxError( 'bad syntax' );
out = toJSON( err );
/* returns
{
"type": "SyntaxError",
"name": "SyntaxError",
"message": "bad syntax",
"stack": "..."
}
*/
err = new ReferenceError( 'unknown variable' );
out = toJSON( err );
/* returns
{
"type": "ReferenceError",
"name": "ReferenceError",
"message": "unknown variable",
"stack": "..."
}
*/
err = new URIError( 'bad URI' );
out = toJSON( err );
/* returns
{
"type": "URIError",
"name": "URIError",
"message": "bad URI",
"stack": "..."
}
*/
err = new RangeError( 'value out-of-range' );
out = toJSON( err );
/* returns
{
"type": "RangeError",
"name": "RangeError",
"message": "value out-of-range",
"stack": "..."
}
*/
err = new EvalError( 'eval error' );
out = toJSON( err );
/* returns
{
"type": "EvalError",
"name": "EvalError",
"message": "eval error",
"stack": "..."
}
*/