parse-err
Parse errors to provide a consistent metadata object across Browser and Node environments. Made for Cabin.
Table of Contents
Install
npm:
npm install parse-err
yarn:
yarn add parse-err
How does it work
This package exports a function that accepts two arguments (err, props)
.
req
(Object) - an HTTP requestprops
(Array) - a list of properties to cherry-pick from the error object parsed out of err
(by default all properties are returned; even non-enumerable ones and ones on the prototype object)
This function iterates over the prototype of the error and the error itself to get all non-Function properties and returns these properties as an object.
Normally if you console.log(err)
it will not show you all fields such as type
, statusCode
, or code
(e.g. if you're using Stripe).
In our case, we wanted to store these properties in our logs with Cabin.
Usage
Node
const parseErr = require('parse-err');
const err = new Error('Oops!');
err.name = 'BeepBoop';
err.code = 100;
err.statusCode = 200;
console.error(parseErr(err));
VanillaJS
<script src="https://unpkg.com/parse-err"></script>
<script type="text/javascript">
(function() {
var err = new Error('Oops!');
err.name = 'BeepBoop';
err.statusCode = 500;
console.error(parseErr(err));
})();
</script>
Contributors
License
MIT © Nick Baugh