pretty-monitor
v0.3.2
Published
Readable monitor for unhandled rejections in when.js
Downloads
228
Readme
PrettyMonitor
PrettyMonitor is a small debug utility that catches escaped when.js rejections in node.js apps and renders them in a readable format.
Screenshot
This is similar to when.js's default monitoring tool: when/monitor/console.
Here is a screenshot of the original tool (as of when-3.1):
PrettyMonitor does the same thing with some formatting:
Usage (in when-3.x
)
Install with npm:
npm install pretty-monitor
And in your javascript:
// require the dependencies first:
wn = require('when');
PrettyMonitor = require('pretty-monitor');
PromiseMonitor = require('when/monitor/PromiseMonitor');
// then, instantiate the monitor:
promiseMonitor = new PromiseMonitor(new PrettyMonitor());
// ... and start it:
promiseMonitor.monitor(wn.Promise);
// to see a sample rejection:
wn().then(function(){
// this will throw an error and cause a rejection which won't be handled.
// PrettyMonitor will log this rejection to the console.
someNonExistingFunction();
});
Note on when-3.1
The monitoring api on when-3.1
looks a tiny bit different:
// require the dependencies first:
wn = require('when');
PrettyMonitor = require('pretty-monitor');
PromiseMonitor = require('when/monitor/PromiseMonitor');
// this is the different part:
console.promiseMonitor = new PromiseMonitor(new PrettyMonitor());
// to see a sample rejection:
wn().then(function(){
// this will throw an error and cause a rejection which won't be handled.
// PrettyMonitor will log this rejection to the console.
someNonExistingFunction();
});
Usage (in when-2.x
)
Install with npm:
npm install [email protected]
And then require it somewhere in your code:
require('pretty-monitor').start();
// to see a sample rejection:
var wn = require('when');
require('pretty-monitor').start();
wn().then(function(){
// this will throw an error and cause a rejection which won't be handled.
// PrettyMonitor will log this rejection to the console.
someNonExistingFunction();
});
Customization
PrettyMonitor uses PrettyError to render the rejections. PrettyError is very customizable. You can set themes, customize layout and colors, and simplify the stack trace. There are a bunch of examples at PrettyError's docs, so, make sure to check them out.
To access the PrettyError instance when using PrettyMonitor:
prettyError = prettyMonitor.getPrettyError();
// if you're using [email protected]:
prettyError = prettyMonitor.start();
State of The Project
This is a work in progress. I'll try to fix bugs and keep it up-to-date with when.js. Feel free to open an issue if something isn't working, and of course, Pull Requests are more than welcome :)
License
MIT