{"_id":"utils-error-to-json","_rev":"4-ab95f48885e7528439134dcb5d929d38","name":"utils-error-to-json","description":"Returns a JSON representation of an error object.","dist-tags":{"latest":"1.0.0"},"versions":{"0.0.0":{"name":"utils-error-to-json","version":"0.0.0","description":"Returns a JSON representation of an error object.","author":{"name":"Athan Reines","email":"kgryte@gmail.com"},"contributors":[{"name":"Athan Reines","email":"kgryte@gmail.com"}],"scripts":{"test":"if [ \"${TRAVIS}\" ]; then npm run test-ci; else npm run test-local; fi","test-local":"tape \"./test/*.js\" | tap-spec","test-ci":"npm run test-local && xvfb-run npm run test-browsers","test-cov":"istanbul cover --dir ./reports/coverage --report lcov tape -- \"./test/*.js\"","test-browsers":"browserify ./test/*.js | testling | tap-spec","coverage":"istanbul cover --dir ./reports/codecov/coverage --report lcovonly tape -- \"./test/*.js\" && cat ./reports/codecov/coverage/lcov.info | codecov && rm -rf ./reports/codecov"},"main":"./lib","repository":{"type":"git","url":"git://github.com/kgryte/utils-error-to-json.git"},"keywords":["error","object","err","obj","serialize","tojson","json","to","convert","utility","util","utilities","utils"],"bugs":{"url":"https://github.com/kgryte/utils-error-to-json/issues"},"dependencies":{"object-keys":"^1.0.9","utils-copy":"^1.1.0"},"devDependencies":{"browserify":"12.x.x","codecov.io":"^0.1.5","detect-class-support":"^1.0.0","istanbul":"^0.4.1","jshint":"2.x.x","jshint-stylish":"2.x.x","tap-spec":"4.x.x","tape":"4.x.x","testling":"1.x.x"},"testling":{"files":["test/*.js"],"browsers":["iexplore/6.0..latest","firefox/3.0..latest","firefox/nightly","chrome/4.0..latest","chrome/canary","opera/10.0..latest","opera/next","safari/4.0..latest","ipad/6.0..latest","iphone/6.0..latest","android-browser/4.2..latest"]},"license":"MIT","gitHead":"be6d0c318ac6462b0678027d1106aaf41b784efa","homepage":"https://github.com/kgryte/utils-error-to-json#readme","_id":"utils-error-to-json@0.0.0","_shasum":"293e679f639e7877815191a9920134f9a5113d72","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.3","_npmUser":{"name":"kgryte","email":"kgryte@gmail.com"},"dist":{"shasum":"293e679f639e7877815191a9920134f9a5113d72","tarball":"https://registry.npmjs.org/utils-error-to-json/-/utils-error-to-json-0.0.0.tgz","integrity":"sha512-DR4HbabsMtgbhgSdz7pnRtrZ5YpxMYl5h6Wmrq/LjZeJvcEF5S/eK56tXTjWQlYwBCYnGLf4egLix7rGE/LIhA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDzpaFg4//mJzyy1XiGJ0QTqoCScusKGBEeqP6o3TNe7wIgRU2tb9AVGNFN+FGQD7jwH2aPlC06xK8I5bBybFKcunU="}]},"maintainers":[{"name":"kgryte","email":"kgryte@gmail.com"}]},"1.0.0":{"name":"utils-error-to-json","version":"1.0.0","description":"Returns a JSON representation of an error object.","author":{"name":"Athan Reines","email":"kgryte@gmail.com"},"contributors":[{"name":"Athan Reines","email":"kgryte@gmail.com"}],"scripts":{"test":"if [ \"${TRAVIS}\" ]; then npm run test-ci; else npm run test-local; fi","test-local":"tape \"./test/*.js\" | tap-spec","test-ci":"npm run test-local && xvfb-run npm run test-browsers","test-cov":"istanbul cover --dir ./reports/coverage --report lcov tape -- \"./test/*.js\"","test-browsers":"browserify ./test/*.js | testling | tap-spec","coverage":"istanbul cover --dir ./reports/codecov/coverage --report lcovonly tape -- \"./test/*.js\" && cat ./reports/codecov/coverage/lcov.info | codecov && rm -rf ./reports/codecov"},"main":"./lib","repository":{"type":"git","url":"git://github.com/kgryte/utils-error-to-json.git"},"keywords":["error","object","err","obj","serialize","tojson","json","to","convert","utility","util","utilities","utils"],"bugs":{"url":"https://github.com/kgryte/utils-error-to-json/issues"},"dependencies":{"object-keys":"^1.0.9","utils-copy":"^1.1.0"},"devDependencies":{"browserify":"12.x.x","codecov.io":"^0.1.5","detect-class-support":"^1.0.0","istanbul":"^0.4.1","jshint":"2.x.x","jshint-stylish":"2.x.x","tap-spec":"4.x.x","tape":"4.x.x","testling":"1.x.x"},"testling":{"files":["test/*.js"],"browsers":["iexplore/6.0..latest","firefox/3.0..latest","firefox/nightly","chrome/4.0..latest","chrome/canary","opera/10.0..latest","opera/next","safari/4.0..latest","ipad/6.0..latest","iphone/6.0..latest","android-browser/4.2..latest"]},"license":"MIT","gitHead":"6f4607732ac4d3ac6e52bf406f57ada5a4f7583e","homepage":"https://github.com/kgryte/utils-error-to-json#readme","_id":"utils-error-to-json@1.0.0","_shasum":"61e4a7ba8567e3ce7ac2f305cd1948b2a874f300","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.3","_npmUser":{"name":"kgryte","email":"kgryte@gmail.com"},"dist":{"shasum":"61e4a7ba8567e3ce7ac2f305cd1948b2a874f300","tarball":"https://registry.npmjs.org/utils-error-to-json/-/utils-error-to-json-1.0.0.tgz","integrity":"sha512-JJ4u+g7jclEE1HctKSlMS5mlS9gRsCiQHHOUYf0rin1wTaLCiLFnorR1qAWOKW9+WR3AhV41hx2MMWXa5GWtAQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCnEUbnDgY/rGPBRaA5k3KGYlagyhf1svCuF+qo7MNFlwIhAL29189L4n58+cGP1PrZlJ0wd5PGb3nnpg1eBH/B7oqX"}]},"maintainers":[{"name":"kgryte","email":"kgryte@gmail.com"}]}},"readme":"toJSON\n===\n[![NPM version][npm-image]][npm-url] [![Build Status][build-image]][build-url] [![Coverage Status][coverage-image]][coverage-url] [![Dependencies][dependencies-image]][dependencies-url]\n\n> Returns a [JSON][json] representation of an [error][js-error] object.\n\n\n## Installation\n\n``` bash\n$ npm install utils-error-to-json\n```\n\n\n## Usage\n\n``` javascript\nvar toJSON = require( 'utils-error-to-json' );\n```\n\n#### toJSON()\n\nReturns a [JSON][json] representation of an [`error`][js-error] object.\n\n``` javascript\nvar err = new Error( 'beep' );\n\nvar json = toJSON( err );\n/*\n  {\n\t\"type\": \"Error\",\n\t\"name\": \"Error\", // if present\n\t\"message\": \"beep\",\n\t\"stack\": \"<stack>\" // if present\n  }\n*/\n```\n\nThe [JSON][json] `object` is __guaranteed__ to have the following properties:\n\n*\t__type__: error type\n*\t__message__: error message\n\nThe __only__ standardized cross-platform property is `message`. Depending on the platform, the following properties __may__ be present:\n\n*\t__name__: error name\n*\t__stack__: stack trace\n*\t__code__: error code ([Node.js][node-system-error] system errors)\n*\t__errno__: error code `string` ([Node.js][node-system-error] system errors)\n*\t__syscall__: `string` representing the failed system call ([Node.js][node-system-error] system errors)\n\nThe `function` also serializes __all__ `enumerable` properties.\n\n``` javascript\nvar err = new Error( 'beep' );\nerr.a = 'b';\nerr.c = { 'd': 'e' };\n\nvar json = toJSON( err );\n/*\n  {\n\t\"type\": \"Error\",\n\t\"name\": \"Error\", // if present\n\t\"message\": \"beep\",\n\t\"stack\": \"<stack>\", // if present\n\t\"a\": \"b\",\n\t\"c\": {\n      \"d\": \"e\"\n    }\n  }\n*/\n```\n\n\n## Notes\n\n*\tSupported built-in [`error`][js-error] types:\n\t-\t[`Error`][js-error]\n\t-\t[`TypeError`][js-type-error]\n\t-\t[`SyntaxError`][js-syntax-error]\n\t-\t[`ReferenceError`][js-reference-error]\n\t-\t[`RangeError`][js-range-error]\n\t-\t[`URIError`][js-uri-error]\n\t-\t[`EvalError`][js-eval-error]\n*\tThe implementation supports custom error types and sets the `type` field to the closest built-in [`error`][js-error] type.\n\t\n\t``` javascript\n\tfunction CustomError( msg ) {\n\t\tthis.name = 'CustomError';\n\t\tthis.message = msg || '';\n\t\tthis.stack = ( new TypeError() ).stack;\n\t\treturn this;\n\t}\n\tCustomError.prototype = Object.create( TypeError.prototype );\n\tCustomError.prototype.constructor = CustomError;\n\n\tvar err = new CustomError( 'boop' );\n\n\tvar json = toJSON( err );\n\t/*\n\t  {\n\t    \"type\": \"TypeError\",\n\t    \"name\": \"CustomError\", \n\t    \"message\": \"boop\",\n\t    \"stack\": \"<stack>\"\n\t  }\n\t*/\n\t```\n\n\n## Examples\n\n``` javascript\nvar toJSON = require( 'utils-error-to-json' );\n\nvar err = new Error( 'beep' );\nconsole.log( toJSON( err ) );\n/*\n  {\n\t\"type\": \"Error\",\n\t\"name\": \"Error\",\n\t\"message\": \"beep\",\n\t\"stack\": \"<stack>\"\n  }\n*/\n\nerr = new TypeError( 'invalid type' );\nconsole.log( toJSON( err ) );\n/*\n  {\n\t\"type\": \"TypeError\",\n\t\"name\": \"TypeError\",\n\t\"message\": \"invalid type\",\n\t\"stack\": \"<stack>\"\n  }\n*/\n\nerr = new SyntaxError( 'bad syntax' );\nconsole.log( toJSON( err ) );\n/*\n  {\n\t\"type\": \"SyntaxError\",\n\t\"name\": \"SyntaxError\",\n\t\"message\": \"bad syntax\",\n\t\"stack\": \"<stack>\"\n  }\n*/\n\nerr = new ReferenceError( 'unknown variable' );\nconsole.log( toJSON( err ) );\n/*\n  {\n\t\"type\": \"ReferenceError\",\n\t\"name\": \"ReferenceError\",\n\t\"message\": \"unknown variable\",\n\t\"stack\": \"<stack>\"\n  }\n*/\n\nerr = new URIError( 'bad URI' );\nconsole.log( toJSON( err ) );\n/*\n  {\n\t\"type\": \"URIError\",\n\t\"name\": \"URIError\",\n\t\"message\": \"bad URI\",\n\t\"stack\": \"<stack>\"\n  }\n*/\n\nerr = new RangeError( 'value out-of-range' );\nconsole.log( toJSON( err ) );\n/*\n  {\n\t\"type\": \"RangeError\",\n\t\"name\": \"RangeError\",\n\t\"message\": \"value out-of-range\",\n\t\"stack\": \"<stack>\"\n  }\n*/\n\nerr = new EvalError( 'eval error' );\nconsole.log( toJSON( err ) );\n/*\n  {\n\t\"type\": \"EvalError\",\n\t\"name\": \"EvalError\",\n\t\"message\": \"eval error\",\n\t\"stack\": \"<stack>\"\n  }\n*/\n```\n\nTo run the example code from the top-level application directory,\n\n``` bash\n$ node ./examples/index.js\n```\n\n\n---\n## Tests\n\n### Unit\n\nThis repository uses [tape][tape] for unit tests. To run the tests, execute the following command in the top-level application directory:\n\n``` bash\n$ make test\n```\n\nAll new feature development should have corresponding unit tests to validate correct functionality.\n\n\n### Test Coverage\n\nThis repository uses [Istanbul][istanbul] as its code coverage tool. To generate a test coverage report, execute the following command in the top-level application directory:\n\n``` bash\n$ make test-cov\n```\n\nIstanbul creates a `./reports/coverage` directory. To access an HTML version of the report,\n\n``` bash\n$ make view-cov\n```\n\n\n### Browser Support\n\nThis repository uses [Testling][testling] for browser testing. To run the tests in a (headless) local web browser, execute the following command in the top-level application directory:\n\n``` bash\n$ make test-browsers\n```\n\nTo view the tests in a local web browser,\n\n``` bash\n$ make view-browser-tests\n```\n\n<!-- [![browser support][browsers-image]][browsers-url] -->\n\n\n---\n## License\n\n[MIT license](http://opensource.org/licenses/MIT).\n\n\n## Copyright\n\nCopyright &copy; 2015. Athan Reines.\n\n\n[npm-image]: http://img.shields.io/npm/v/utils-error-to-json.svg\n[npm-url]: https://npmjs.org/package/utils-error-to-json\n\n[build-image]: http://img.shields.io/travis/kgryte/utils-error-to-json/master.svg\n[build-url]: https://travis-ci.org/kgryte/utils-error-to-json\n\n[coverage-image]: https://img.shields.io/codecov/c/github/kgryte/utils-error-to-json/master.svg\n[coverage-url]: https://codecov.io/github/kgryte/utils-error-to-json?branch=master\n\n[dependencies-image]: http://img.shields.io/david/kgryte/utils-error-to-json.svg\n[dependencies-url]: https://david-dm.org/kgryte/utils-error-to-json\n\n[dev-dependencies-image]: http://img.shields.io/david/dev/kgryte/utils-error-to-json.svg\n[dev-dependencies-url]: https://david-dm.org/dev/kgryte/utils-error-to-json\n\n[github-issues-image]: http://img.shields.io/github/issues/kgryte/utils-error-to-json.svg\n[github-issues-url]: https://github.com/kgryte/utils-error-to-json/issues\n\n[tape]: https://github.com/substack/tape\n[istanbul]: https://github.com/gotwarlost/istanbul\n[testling]: https://ci.testling.com\n\n[json]: http://www.json.org/\n[js-error]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error\n[js-type-error]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypeError\n[js-syntax-error]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError\n[js-range-error]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RangeError\n[js-reference-error]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError\n[js-uri-error]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/URIError\n[js-eval-error]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/EvalError\n[node-error]: https://nodejs.org/api/errors.html\n[node-system-error]: https://nodejs.org/api/errors.html#errors_class_system_error\n","maintainers":[{"name":"kgryte","email":"kgryte@gmail.com"}],"time":{"modified":"2022-06-28T07:24:57.418Z","created":"2015-12-31T06:35:18.967Z","0.0.0":"2015-12-31T06:35:18.967Z","1.0.0":"2015-12-31T06:35:41.536Z"},"homepage":"https://github.com/kgryte/utils-error-to-json#readme","keywords":["error","object","err","obj","serialize","tojson","json","to","convert","utility","util","utilities","utils"],"repository":{"type":"git","url":"git://github.com/kgryte/utils-error-to-json.git"},"contributors":[{"name":"Athan Reines","email":"kgryte@gmail.com"}],"author":{"name":"Athan Reines","email":"kgryte@gmail.com"},"bugs":{"url":"https://github.com/kgryte/utils-error-to-json/issues"},"license":"MIT","readmeFilename":"README.md"}