utils-error-reviver

Revives a JSON-serialized error object.

Usage no npm install needed!

<script type="module">
  import utilsErrorReviver from 'https://cdn.skypack.dev/utils-error-reviver';
</script>

README

Error Reviver

NPM version Build Status Coverage Status Dependencies

Revives a JSON-serialized error object.

Installation

$ npm install utils-error-reviver

Usage

var revive = require( 'utils-error-reviver' );

revive( key, value )

Revives a JSON-serialized error object.

var str = '{"type":"TypeError","message":"beep"}';

var err = JSON.parse( str, revive );
// returns <TypeError>

For details on the JSON serialization format, see utils-error-to-json.

Notes

Examples

var toJSON = require( 'utils-error-to-json' );
var revive = require( 'utils-error-reviver' );

var err1 = new SyntaxError( 'bad syntax' );
// returns <SyntaxError>

var json = toJSON( err1 );
/*
  {
    "type": "SyntaxError",
    "name": "SyntaxError",
    "message": "bad syntax",
    "stack": "<stack>"
  }
*/

var str = JSON.stringify( json );
// returns '{"type":"SyntaxError","name":"SyntaxError","message":"bad syntax","stack":"<stack>"}'

var err2 = JSON.parse( str, revive );
// returns <SyntaxError>

console.log( err1.message === err2.message );
// returns true

console.log( err1.stack === err2.stack );
// returns true

To run the example code from the top-level application directory,

$ node ./examples/index.js

Tests

Unit

This repository uses tape for unit tests. To run the tests, execute the following command in the top-level application directory:

$ make test

All new feature development should have corresponding unit tests to validate correct functionality.

Test Coverage

This repository uses Istanbul as its code coverage tool. To generate a test coverage report, execute the following command in the top-level application directory:

$ make test-cov

Istanbul creates a ./reports/coverage directory. To access an HTML version of the report,

$ make view-cov

Browser Support

This repository uses Testling for browser testing. To run the tests in a (headless) local web browser, execute the following command in the top-level application directory:

$ make test-browsers

To view the tests in a local web browser,

$ make view-browser-tests

License

MIT license.

Copyright

Copyright © 2015. Athan Reines.